这是我从MSDN中找到的东西,我无法理解这个陈述.我非常感谢一个能够证明这一点的代码示例.
"两个相等的对象返回相等的哈希码.但是,相反的情况并非如此:相等的哈希码并不意味着对象相等,因为不同的(不相等的)对象可以具有相同的哈希码."
取自:http://msdn.microsoft.com/en-us/library/system.object.gethashcode( v= vs.110).aspx
谢谢大家!
我非常感谢一个能够证明这一点的代码示例.
string s1 = "??";
string s2 = "";
int h1 = s1.GetHashCode();
int h2 = s2.GetHashCode();
bool b1 = s1 == s2;
bool b2 = h1 == h2;
Run Code Online (Sandbox Code Playgroud)
b1是假的.b2是真的.
只有40亿个哈希码,但是有无限多的字符串.因此,它们中至少有两个必须具有相同的哈希码.我提供了其中两个; 试着找到更多.
有关更多信息,请参阅:
http://ericlippert.com/2011/02/28/guidelines-and-rules-for-gethashcode/
http://blogs.msdn.com/b/ericlippert/archive/2011/07/15/the-curious-property-revealed.aspx