关于如何正确重写 object.GetHashCode() 的一般建议和指南
根据 MSDN,哈希函数必须具有以下内容特性: 如果两个对象比较相等,则每个对象的 GetHashCode 方法必须返回相同的值。但是,如果两个对象比较不相等…
在 Delphi 中将 GetHashCode 的双精度数转换为整数
Delphi 2009为TObject添加了GetHashCode函数。 GetHashCode 返回一个 Integer,用于 TDictionary 中的散列。 如果您希望对象在 TDictionary 中正常工…
有完整的 IEquatable 实现参考吗?
我在这里关于 SO 的许多问题都涉及 IEquatable 的实现。我发现正确实现非常困难,因为幼稚的实现中存在许多隐藏的错误,而且我发现的有关它的文章相当…
在 C# 中创建 GetHashCode 方法
在 C# 中为类创建自己的 GetHashCode 方法的最佳方法是什么? 假设我有一个简单的类(它重写了 Equals 方法),如下所示: class Test { public strin…
如何覆盖特定 NHibernate 类的 equals
我正在努力弄清楚应该如何覆盖 equals 并获取我使用 NHibernate 编写的类的哈希码。 基本业务场景是用户在 90 天的限制内不能重复使用相同的密码。 所…
我应该如何实现 Object.GetHashCode() 以获得复杂的相等性?
基本上,到目前为止我有以下内容: class Foo { public override bool Equals(object obj) { Foo d = obj as Foo ; if (d == null) return false; ret…
是否可以组合私有成员的哈希码来生成新的哈希码?
我有一个对象,我想为其生成唯一的哈希值(覆盖 GetHashCode()),但我想避免溢出或不可预测的情况。 该代码应该是组合一小部分字符串的哈希码的结果…
使用异或的 GetHashCode() 问题
我的理解是,您通常应该将 xor 与 GetHashCode() 一起使用来生成 int,以通过其值(而不是通过其引用)来识别数据。 这是一个简单的例子: class Foo …
重写可变对象的 GetHashCode?
我已经阅读了大约 10 个关于何时以及如何重写 GetHashCode 的不同问题,但仍有一些问题我不太明白。 GetHashCode 的大多数实现都基于对象字段的哈希码…
C# 如何为违反 Equals 约定的类选择 Hashcode?
我有多个类,由于某些原因,不遵循官方 Equals 合同。 在覆盖的 GetHashCode() 中,这些类仅返回 0,以便可以在 Hashmap 中使用它们。 其中一些类实现…
我是否需要重写引用类型上的 GetHashCode() ?
我在 StackOverflow 上阅读了有关 GetHashCode 的大多数问题。 但我仍然不确定是否必须重写引用类型上的 GetHashCode 。 我从另一个问题的某人的回答…
GetHashCode扩展方法
在阅读了 StackOverflow 上有关重写 GetHashCode() 的所有问题和答案后,我编写了以下扩展方法,以便轻松方便地重写 GetHashCode():( public static…
重写 GetHashCode 的最佳算法是什么?
在 .NET 中,GetHashCode 方法 在 .NET 基类库的很多地方都使用。 正确实现它对于在集合中快速查找项目或确定相等性时尤其重要。 是否有关于如何为我…