【发布时间】:2010-06-28 00:40:20
【问题描述】:
我有一个类在三个浮点数中占有一席之地。我已经像这样覆盖了 Equals:
return Math.Abs(this.X - that.X) < TOLERANCE
&& Math.Abs(this.Y - that.Y) < TOLERANCE
&& Math.Abs(this.Z - that.Z) < TOLERANCE;
这一切都很好,但现在我需要为这些顶点编写一个 GetHashCode 实现,我被卡住了。简单地取三个值的哈希码并将它们异或在一起是不够的,因为位置稍有不同的两个对象可能被认为是相同的。
那么,我怎样才能为这个类构建一个 GetHashCode 实现,它总是为上述方法认为相等的实例返回相同的值?
【问题讨论】:
-
感谢那些指出 equals 不是传递的人。我应该看到的!