== &
Referencequals
请参阅以下代码:
string s1 = "1";
string s2 = string.Copy("1");
Console.WriteLine(object.ReferenceEquals(s1, s2));
Console.WriteLine(s1 == s2);
Console.Read();
输出结果为:
False
True
有人可以解释这种行为吗?
答案 0 :(得分:8)
ReferenceEquals
比较对象的引用。
==
可以重载以执行任何类型的操作。引用类型的默认行为(如果未重载)是对引用的比较。 String
重载了运算符以进行基于值的比较,而不是参考比较。