问题标签 [gethashcode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
754 浏览

c# - 为什么返回 false ?新人(“詹姆斯”)==新人(“詹姆斯”)?

我已经覆盖GetHashCodeEquals并且两种方法都为不同的对象提供了相同的结果,但为什么仍然得到 false ?

0 投票
5 回答
1605 浏览

c# - 对于 DateRange 类,什么是好的 hashCode

我有以下课程

我需要将一些值存储在以 DateRange 为键的字典中,例如:

我应该如何覆盖类的GetHashCode()方法DateRange

0 投票
2 回答
379 浏览

c# - Gethashcode() 函数

为什么 C1 和 c2 没有相同的哈希码?代码没有达到“相同”....(两个类中的 i=0)

0 投票
5 回答
8914 浏览

c# - 为什么 ValueType.GetHashCode() 是这样实现的?

ValueType.cs

今天,当我使用 KeyValuePair 作为字典中的键时,我被这个咬了(它存储了 xml 属性名称(枚举)和它的值(字符串)),并期望它根据它的所有字段计算它的哈希码,但根据实现它只考虑了关键部分。

示例(来自 Linqpad 的 c/p):

我猜第一个非静态字段意味着声明顺序中的第一个字段,这也可能在出于任何原因更改源中的变量顺序时造成麻烦,并且相信它不会在语义上更改代码。

0 投票
2 回答
864 浏览

c# - 为 WCF 保留抽象方法服务器端的方法

我们正在强制执行所有域对象来实现 GetHashCode。

当我们通过 WCF 公开这些域对象时,以下生成的服务需要更新后修改才能编译。

关于如何保持对 GetHashCode 的要求,但删除客户端上任何代码的要求(作为更新或作为部分类)的任何想法?

0 投票
1 回答
828 浏览

wpf - wpf 在 ContentControl 中覆盖 getHashCode 和 Eqaul

您好我有一个派生自 ContentControl 的类,但我无法覆盖 GetHashCode 和 Equal 方法。我收到一个错误

错误 5 无法覆盖继承的成员 'System.Windows.DependencyObject.GetHashCode()' 因为它是密封的 有没有办法覆盖这个方法?我需要使用 LINQ 中的 Union 方法,但是我需要比较与正常情况不同的对象。有什么办法吗?

0 投票
2 回答
808 浏览

c# - GetHashCode 等式

我一直想知道这个,所以我想我会问它。

您将看到的大多数地方都使用与 GetHashCode 相同的语义逻辑来覆盖 Equals 以实现成员相等......但是它们通常使用不同的实现:

如果您正在为您的类型实现成员相等(假设存储在字典中),为什么不直接覆盖 GetHashCode 然后为 Equals 执行类似的操作:

0 投票
4 回答
5665 浏览

c# - Double.GetHashCode 算法或覆盖

我有一个托管和非托管代码都运行的应用程序项目,我需要使用相同的算法来散列两个系统中的双精度值。所以要么我将覆盖 System.Double.GetHashCode() 要么在 C++ 代码中使用它的算法。我找不到 double.gethashcode 算法并决定重写该函数。但我遇到了一个奇怪的错误。

无法将 double 类型隐式转换为 System.Double

这是代码:

如果我取消注释第 2 行,我会得到无法将 type double 隐式转换为 System.Double 错误。如果我运行第 1 行,则不会发生错误,但覆盖的代码永远不会起作用。

也许这是我正在尝试的非常糟糕的事情。所以任何人都知道 double.getashcode 算法,所以我可以编写等效的 c++ 代码来获得确切的 int 值?

0 投票
3 回答
33017 浏览

c# - 在 C# 中播种伪随机数生成器

我需要一个 C#Random类实例的种子,并且我读到大多数人为此使用当前时间的滴答计数器。但这是一个 64 位的值,种子需要是一个 32 位的值。现在我认为GetHashCode()返回 an 的方法int应该为其对象提供合理分布的值,这可以用来避免仅使用滴答计数的低 32 位。但是,我找不到有关Int64数据类型的 GetHashCode() 的任何信息。

所以,我知道这并不重要,但以下工作会像我想的那样好(我不能试错随机性),或者它可能与使用(int)DateTime.Now.Ticks种子一样工作?或者它甚至可能更糟糕?谁能对此有所了解。

编辑:为什么我需要种子而不是让Random()构造函数完成工作?我需要将种子发送给对相同随机序列使用相同种子的其他客户端。

0 投票
3 回答
36493 浏览

c# - IEqualityComparer中GetHashCode的作用是什么在.NET 中?

我试图了解接口 IEqualityComparer 的 GetHashCode 方法的作用。

以下示例取自 MSDN:

Equals 方法实现不应该足以比较两个 Box 对象吗?这就是我们告诉框架用于比较对象的规则的地方。为什么需要 GetHashCode?

谢谢。

卢西安