我有一個班級,在三個浮標中佔有一席之地。我已重寫的Equals像這樣:如何爲這個類寫一個哈希碼生成器?
return Math.Abs(this.X - that.X) < TOLERANCE
&& Math.Abs(this.Y - that.Y) < TOLERANCE
&& Math.Abs(this.Z - that.Z) < TOLERANCE;
這一切都非常好,但現在我需要編寫這些頂點的GetHashCode的實現,和我被困。簡單地將三個值的哈希碼和xoring在一起是不夠好的,因爲兩個位置略有不同的對象可能被認爲是相同的。
那麼,我該如何爲這個類建立一個GetHashCode實現,它總是會爲上面的方法認爲相等的實例返回相同的值?
感謝指出平等不是傳遞性的人。我應該看到的! – Martin 2010-06-28 00:49:58