结构体的哈希码在.net框架中是一致的吗?

本文关键字:框架 哈希码 net 结构体 | 更新日期: 2023-09-27 18:18:39

如果内容相等,内建到。net框架中的结构总是返回相同的哈希码吗?具体来说,我正在考虑System.Drawing.Color and Size

结构体的哈希码在.net框架中是一致的吗?

可以。

正确实现的GetHashCode对于被认为相等的项返回相同的值。. net中所有现有的结构体都实现了这样的功能来满足这种期望。

指出

  • 如果哈希码相等,并不意味着对象相等。
  • 在应用程序的单次执行之外,不需要相同"值"的哈希码保持相同。对于像Int32Size这样的简单类型不太可能,但是不应该依赖哈希码。如果你需要一致的值-实现和使用你自己的方法。

你可以从Eric Lippert的指南和规则中得到更详细的讨论。