让我们面对以下代码:
string a = "This is not a long string!";
string b = "Another string";
b = "This is" + " not a long " + "string" + "!";
Console.WriteLine(object.ReferenceEquals(a, b)); //True !
string c = "This is" + " not a long " + "string" + '!';
Console.WriteLine(object.ReferenceEquals(a, c)); //False
我看到的唯一原因是 .NET 优化了变量以占用更少的空间。
.NET 是否存储具有零终止 [null] 或字符串长度的字符串?
我的意思是当我编写以下代码时,如果 .NET 针对字符串运行优化,是否有可能丢失空字符之后的部分?
string Waaaa = "This is not \0a long string!";