何时重写GetHashCode()?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

什么时候应该重写' System '命名空间中' Object '类提供的GetHashCode()方法?

提问于
用户回答回答于

字符串就是一个很好的例子 - 如果两个字符串表示相同的字符序列,则它们是相等的(在简单的Equals调用下)。散列码反映了这一点,如果两个字符串相同,它们将具有相同的散列码。(反过来不一定是这样 - 两个不相等的字符串可以有相同的哈希码,但这不太可能。)

(在其他方面,字符串是棘手的,请注意,基于文化和框架的平等性有很多不同的想法,但String.Equals只是看看构成字符串的UTF-16代码点,并以最简单的可想象的方式比较它们。 )

用户回答回答于

如果你的类型应该遵循值语义(比较内容),而不是引用语义(比较对象标识),那么你应该自己编写实例对象的重写。

扫码关注云+社区