![]() |
1
2
当你写作时
我觉得这段代码有点可怕的错误。GetHashCode方法不保证返回的哈希值在给定两个不同对象时以任何方式都是唯一的。就gethashcode而言,它可以为所有对象返回0,并且仍然被认为是正确的。 当两个对象相同(equals方法返回true)时,它们 必须 从GetHashCode返回相同的值。当两个对象具有相同的哈希值时,它们 可以 同一对象(等于返回真)或不同对象(等于返回假)。 GetHashCode的结果没有其他保证。 对象类中GetHashCode的默认实现根据内存中的对象地址或类似内容返回哈希值。如果需要进行其他身份比较,则 不得不 重写Equals和GetHashCode。 |
![]() |
2
1
重写调用此方法的类中的GetHashCode方法,并根据唯一的对象属性(如ID或所有对象字段)计算哈希代码。 |
![]() |
3
1
解决方案1:为所有子对象创建一个唯一的ID,并使用它而不是哈希代码。 解决方案2:将if(a.gethashcode()==b.gethashcode())替换为if(a.equals(b))。 |
![]() |
user1946932 · .Net正则表达式在所有字符前添加空格 6 月前 |
![]() |
TSDrake · 发布ASP。没有特定文件夹的.NET应用程序 7 月前 |
![]() |
Vengat Ramanan · 用户登录Asp时隐藏导航和页脚。网络核心 11 月前 |
![]() |
ramamoorthy_villi · 输入验证错误外键字段 1 年前 |