先给上微软的实例链接,Object.Equals方法, 然后是我的总结
总起:Equals比较取决于参数是 值类型 和 引用类型
1.引用类型
1.1 Equals 等于ReferenceEquals(System.Object,System.Object)
1.2 Reference equality 就是比较引用指向是否相同
1.3 指向同一个对象,就是返回true;否则,即使值完全相同的,指向不同的2个对象也返回fasle
1.4 String也是引用类型,但是由于String最常使用,它的Equals方法被重写了,String的Equals方法是比较具有相同的值
2.值类型
2.1 先比较数据类型,如:12 (Byte) = 12 (Int32): False;
2.2 类型相同再比较值相等否
3.String的Equals有些不同
官方是这么说的:确定此实例是否和另一个的String对象具有相同的值。
4.最后说一下
Equals和==有很多相似之处,但是也有不同的地方,可以看我写的关于C#的运算符==的博客C#的运算符==
若是是String对象,一定要注意它不同于一般的引用类型,主要是因为String被使用的太多了,
微软重写了String.Equals()和重载了String的==