假设我有两个名为K
and M
if(K.Equals(M))
{
}
如果这是真的的话K
and M
always有相同的HashCode http://msdn.microsoft.com/en-us/library/system.object.gethashcode%28v=vs.71%29.aspx ?
或者这取决于编程语言?
合同为GetHashCode()
需要它,但由于任何人都可以自己实现,因此永远无法保证。
许多类(尤其是哈希表)需要它才能正确运行。
如果您正在实现一个类,则应始终确保两个相等的对象具有相同的哈希码。
如果您正在实现一个实用程序方法/类,您可以假设两个相等的对象具有相同的哈希码(如果不是,则这是另一个类,而不是您的类,这是有问题的)。
如果您正在实施一些涉及安全的事情,您cannot假设它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)