NET高级 EQUAL相等
查看判断两个对象是否是同一个对象要用:object.ReferenceEquals();
因为“==”默认值是比较两个对象是不是同一个对象。所以有时候两个对象的内容相等,但是比较后还是false。
Object的Equals方法也比较两个变量指向的是否同一个对象;对象如果override 了Equals方法,就可以进行内容的相同比较。
默认情况下==不是调用Equals方法,需要重载==运算符;
String等这些类是重写了Equals方法。
面试题:下面的代码有几个字符串对象
String s1 = "abc";
string s2 = s1;
string s3 = new String(new char[] {'a','b','c' });
Console.WriteLine(s1==s3);//输出true(虽然这里s1和s3不是同一个对象,但由于string重写了Equals方法,只要内容相等也返回true)
答案:两个字符串对象