结构体的哈希码在.net框架中是一致的吗?
本文关键字:框架 哈希码 net 结构体 | 更新日期: 2023-09-27 18:18:39
如果内容相等,内建到。net框架中的结构总是返回相同的哈希码吗?具体来说,我正在考虑System.Drawing.Color and Size
可以。
正确实现的GetHashCode
对于被认为相等的项返回相同的值。. net中所有现有的结构体都实现了这样的功能来满足这种期望。
- 如果哈希码相等,并不意味着对象相等。
- 在应用程序的单次执行之外,不需要相同"值"的哈希码保持相同。对于像
Int32
和Size
这样的简单类型不太可能,但是不应该依赖哈希码。如果你需要一致的值-实现和使用你自己的方法。
你可以从Eric Lippert的指南和规则中得到更详细的讨论。