|
5
|
| Chris W. Rea · 技术社区 · 16 年前 |
|
|
1
6
你不应该压制它。看看equals方法是如何实现的。我确信它会比较类中的一个或多个成员以确定相等性。这些成员中的一个常常足以区分一个对象和另一个对象,因此您可以实现
|
|
|
2
14
如果你真的是特鲁里奥·阿布索姆弗利 积极的 你永远不会用这个东西作为哈希表的键,那么你的建议是合理的。 重写GetHashCode;使其引发异常。 请注意,哈希表隐藏在不太可能的地方。许多LINQ序列运算符在内部使用哈希表实现来加快速度。通过拒绝gethashcode的实现,您也拒绝在各种LINQ查询中使用您的类型。我喜欢构建使用memoization提高速度的算法;memoizer通常使用哈希表。因此,您还拒绝将类型作为参数的方法调用memoize的功能。 或者,如果你不想那么严厉: 重写GetHashCode;使其始终返回零。 满足gethashcode的语义要求;两个相等的对象总是具有相同的哈希代码。如果它曾经被用作字典中的一个键,那么性能将是非常糟糕的,但是当它出现时,您可以处理这个问题,而您声称它永远不会处理这个问题。 都说了:来吧。您可能花了比正确实现问题所需的时间更多的时间来键入问题。想做就做。 |
|
|
3
5
我的价值0.10美元?实现GetHashCode。 尽管你说你永远不会,永远不需要它,但你可能会改变主意,或者其他人可能对如何使用代码有其他想法。一个有效的gethashcode并不难制作,并且保证将来不会有任何问题。 |
|
|
4
5
一旦你忘记了,或者另一个不知道的开发人员使用了这个,就会有人有一个痛苦的bug需要跟踪。我建议您简单地正确实现gethashcode,这样您就不用担心了。或者只是不要在特殊的平等比较案例中使用equals。 |
|
5
4
这个
有关此主题的更多信息,请参阅以下文章: 无耻插:这些文章是我写的。 |
|
|
KPM · PHP和MySQL更改登录用户密码表单,不更新密码 8 年前 |
|
|
ISemsem · 如何在发出警告时中止python脚本 8 年前 |
|
|
Reilly Ford · 对警告感到困惑 8 年前 |
|
|
David Kramf · Swift警告信息不清楚 8 年前 |
|
|
Ed Mozley · 捕获powershell警告 8 年前 |