gpt4 book ai didi

c# - 我什么时候应该为我的类型定义哈希码函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:27 26 4
gpt4 key购买 nike

除了允许很好地使用哈希表之外,是否还有其他原因为我的类型实现哈希码函数?

假设我正在设计一些我打算在内部使用的类型。我知道类型是系统“内部”的,而且我也知道我永远不会在哈希表中使用这些类型。尽管如此,我决定必须重新定义 equals() 方法。

理论说我也应该重新定义哈希码方法,但我看不出有任何理由在这种情况下我应该这样做。

谁能指出我还有其他原因吗?

这个问题可以改写为:在哪些情况下我们应该在我们的类型中实现哈希码方法。

PS:我不是在问如何实现一个。我在问什么时候

最佳答案

可能不会 - 但是您的任何代码(例如)会使用 LINQ 吗?有许多意想不到的地方可能会在您的数据上使用 HashMap 或字典。

如果你不想意想不到的……“好玩”,那么如果你改变Equals , 覆盖 GetHashCode .同样,任何 IEquatable<T>.Equals应该匹配 object.Equals实现。

关于c# - 我什么时候应该为我的类型定义哈希码函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3033949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com