覆盖GetHashCode
:覆盖的必要结果Equals
Equals
>当您覆盖类中的GetHashCode
方法时,覆盖
>
GetHashCode
的重要性
GetHashCode
>通常被低估的方法在确定平等方面起着至关重要的作用。如果两个对象产生不同的哈希码,则不管方法的结果如何,它们立即被视为不等。
Equals
方法必须与
方法的逻辑对齐,遵守以下规则:
GetHashCode
如果两个对象相等(Equals
),则它们
Equals(...) == true
如果两个对象具有相同的哈希代码,则它们不一定是>等于。这代表了哈希碰撞,促使呼叫进行确定的平等验证。Equals
实现
>现代框架通常提供辅助类别(例如某些语言中的GetHashCode
)来简化此过程。
<code class="language-csharp">int hash = 13; hash = (hash * 7) + field1.GetHashCode(); hash = (hash * 7) + field2.GetHashCode(); // ... add more fields as needed return hash;</code>
和HashCode
>运算符以补充
覆盖。>
以上是为什么在覆盖`equals'时覆盖了' gethashcode”?的详细内容。更多信息请关注PHP中文网其他相关文章!