我想大家都知道,在C#中ReferenceEquals是判断两个对象的引用是否相等的一个方法。
public static bool ReferenceEquals(
Object objA,
Object objB
)
如果 objA 是与 objB 相同的实例,或者如果二者都为空引用,则为 true;否则为 false。
那么,请看如下的两中情况:
1.
string str1 = "CCC";
string str2 = "CCC";
object.ReferenceEquals(str1, str2) 返回的是 True
2.
string str3 = new string('C', 3);
string str4 = new string('C', 3);
object.ReferenceEquals(str3, str4) 返回的是 False
他们的结果是截然不同的,我想这是与是否使用new的关键字有关系。
不知道有谁研究过其中的本质区别 ?共同探讨探讨