我可以在没有Equals的情况下使用GetHashCode吗?

9 浏览
0 Comments

我可以在没有Equals的情况下使用GetHashCode吗?

也许我有些不理解。不,我肯定不理解。有一个自定义类,具有两个int类型的属性。在重写GetHashCode方法时,我希望使用这两个属性作为获取哈希码的基础。但是,由于GetHashCode方法的返回类型是int,而我的类中的两个属性都是int类型。结果是,我的属性的各种值的组合比int类型可以容纳的更多。因此,无论如何,都会产生碰撞。对吗?

另外,我想说一下,我尝试了几种被标记为可接受答案的算法,来自其他主题,其中包括像Jon Skeet这样的权威人士提供的选项,但仍然发生了碰撞。

0
0 Comments

这篇文章讨论了在使用GetHashCode时可能出现的问题以及解决方法。首先,文章提到了一个关于GetHashCode的Stack Overflow回答,解释了GetHashCode的用途和用法。然后,文章展示了一段代码,其中包含了一个使用TryGetValue方法的条件语句。接下来,文章提到了使用HashSet来检查唯一性的方法。最后,评论中提到了使用Equals方法来验证对象的步骤,并建议使用工具如Resharper来生成相等性成员。

0