结构的哈希代码是否与.NET Framework一致?

时间:2014-08-19 02:17:35

标签: c#

如果内容相同,.NET Framework中内置的结构总是返回相同的哈希码吗?具体来说,我正在考虑System.Drawing.Color和Size

1 个答案:

答案 0 :(得分:1)

正确实施GetHashCode会为被视为相等的项返回相同的值。 .Net中的所有现有结构确实实现了满足该期望的功能。

注释

  • 如果哈希码相等,则表示对象不相等。
  • 对于相同“值”的哈希码,不要求在单个执行应用程序之外保持相同。像Int32Size这样的简单类型不太可能,但不应该依赖哈希码。如果您需要一致的价值 - 实施并使用您自己的方法。

您可以从Eric Lippert的Guidelines and Rules for GetHashCode获得更详细的讨论。