チリペヂィア

リンクフリー。サンプルコードなどは関連記事内でライセンスについて明示されない限り商用利用なども自由に行って構いませんが、自己責任でお願いします。またこれら日記内容の著作権自体は放棄していません。引用部分については引用元の権利に従ってください。

System.Enum比較する時はCompareTo()

いやぁまぁ表題の通りなんですが、System.Enumと言えばEnum用に型と値を格納するコンテナクラスですね。

ジェネリック化の難しいEnumをどうにかこうにか近い形に持って行ってくれるそれなりに便利なクラスですが、Nullableとかと違って比較演算子とかはオーバーライドされていないのでEquals()とかCompareTo()のメソッドを使わないと、System.Object.ReferenceEquals()が返ってきちまうぜ!ちょっとビックリしたぜ!

…。

あー、intなEnumがあったとして「int上は同値だけど素のintとEnumなintとの比較で一致させるかどうか」って話かなもしかして?いやそら安全のために型明示が常識なんだから型が厳密に一致しないなら不一致でええんでないの?(というかキャストしないと比較できない扱いでいいと思う)

ひとり焼肉がひとり筋肉に見えたので今日は早く寝ます!