GetHashCodeの実装について

http://d.hatena.ne.jp/iltc/20060721#1153491381
Equalsをオーバーライドした場合にオーバーライドすべきGetHashCodeについて。EqualsがTrueのオブジェクトでは生成されるGetHashCodeも同一でないといけないが、重複するのは一向に構わないようだ。つまりすべてのオブジェクトが0を返しても問題なく動作するらしい。←これはうそかも・・・
これはHashTableの構造がキーのHashCodeが等しいかを調べたあとに、EqualsがTrueかどうかを調べるためらしい。
つまり、HashTableの動作が遅くても一向にかまわないときは適当なフィールドのHashCodeをとって返せばよしということらしい。ただもちっとまともな実装例としては、すべてのフィールドをTostringしてStringのGetHashCodeを返すとかがあった。これはいいかも。
ちなみにObject型のEqualsの実装は、同じインスタンスであればTrueを返す実装になっているようだ。