= =&之间的差异Referencequals

时间:2013-11-27 16:04:14

标签: c# string

== & Referencequals

之间存在一些差异

请参阅以下代码:

string s1 = "1";
string s2 = string.Copy("1");

Console.WriteLine(object.ReferenceEquals(s1, s2));
Console.WriteLine(s1 == s2);
Console.Read();

输出结果为:

False
True

有人可以解释这种行为吗?

1 个答案:

答案 0 :(得分:8)

ReferenceEquals比较对象的引用。

==可以重载以执行任何类型的操作。引用类型的默认行为(如果未重载)是对引用的比较。 String重载了运算符以进行基于值的比较,而不是参考比较。