string x = "alok b";
string y = "alok b";
string z = "alok";
//y += x.Replace(y, string.Empty);
z += " b";
Console.WriteLine(object.ReferenceEquals(x,y));
Console.WriteLine(object.ReferenceEquals(y, z));第一行如何打印true和第二行false?
然后更改为下面的语句是打印true。
Console.WriteLine(object.ReferenceEquals(y,string.Intern(z)));发布于 2016-05-06 10:13:42
它叫串实习。
发布于 2016-05-06 10:11:47
创建字符串时,它会创建一个对象(x)。
当您创建y时,您只需“再次”指向它,它就指向相同的一个(有它)。
当您创建Z和do +=时,它完全创建了一个新的,因此,它将与前一个内存中的地址不匹配。
https://stackoverflow.com/questions/37069678
复制相似问题