C# 相等(==,Equals)
http://www.cnblogs.com/yang_sy/p/3582946.html 这个是原文
double x = double.NaN; Console.WriteLine(x == x); // False Console.WriteLine(x.Equals(x)); // True
对于值类型而言,Equals和==很少出现不同的相等性。而在引用类型中,则比较常见。一般地,引用类型的创建者重写Equals方法执行值相等比较,而保留==执行引用相等比较。比如StringBuilder类就是这样的:
StringBuilder buffer1 = new StringBuilder("123"); StringBuilder buffer2 = new StringBuilder("123"); Console.WriteLine(buffer1 == buffer2); // False Console.WriteLine(buffer1.Equals(buffer2)); // True
其它的内容慢慢理解。
GetHashCode() http://www.cnblogs.com/xiashengwang/archive/2013/03/04/2942555.html