如果我有两个具有相同值的字符串,它们应该具有相同的引用,对吧?
这是我的情况:
string s1 = "aaa";
string s2 = "aaa";
Console.WriteLine(" s1: {0}; s2: {1}; equals: {2}", s1,s2, ReferenceEquals(s1, s2));
打印:s1:aaa;s2:aaa;等于:真
但看看这段代码:
string s1 = "aaa";
string s2 = new string(s1.ToCharArray());
Console.WriteLine(" s1: {0}; s2: {1}; equals: {2}", s1,s2, ReferenceEquals(s1, s2));
打印:s1:aaa;s2:aaa;等于:假
为什么在第二种情况下,ReferenceEquals 返回 false?