質問: Unityでゲーム開発をしており、言語はC#を使用しています。 表題の件、現場で議論したのですが どちらが良いのか答えを見つけられませんでした。 下記MSDNのページを見たところ "既定では、最初の列挙子の値は 0 で、後続の列挙子の値は 1 ずつ増加していきます。" とあるので値として==で比較するべきだと思っているのですが、 Equalsでも判定して正しい結果を得る事ができるので 用意されているメソッドで判定すべきではないかとの意見もあり、 結局どっちで比較するのが正しいのかという問題となりました。 どちらで判定すべきか理由が欲しいのですが ご教授いただけませんでしょうか? ■開発環境 Windows7 Unity5.3.0f4
回答: enum型を比較するのであれば、個人的には==ではないかと思いますが、Equals()でも同じ結果になりますよね。理由は値型を比較しているからです。ただ、やみくもになんでもEquals()を使うというのは危険かなと思います。 Equals()はオブジェクト同士を比較するので、値型と参照型では==とは結果が異なることがある、という点を理解して使用するのであれば、チーム内の意志を尊重する、というのもアリかと思います。