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 != はペアで定義しないとコンパイルエラーになるようだ。親切なような余計なお世話のような、良く分からん。