C# の operator ==
http://d.hatena.ne.jp/unibon/20080318/p1 の続き。
public static bool operator ==(Foo a, Foo b) { if (System.Object.ReferenceEquals(a, b)) { return true; } if (((object)a == null) || ((object)b == null)) { return false; } // あとはクラスに依存しててきと〜に比較する。 throw new Exception(); }
の中の (object)a == null のように、キャストして null と比較すれば良いのかな?
C# は C++ の影響が強くて理解しづらい。
なお、operator == と operator != はペアで定義しないとコンパイルエラーになるようだ。親切なような余計なお世話のような、良く分からん。