我关注的是对可追溯到2011年的前一个答案的评论:不可变的字符串.
它声称有这个代码
string str="a";
str +="b";
str +="c";
str +="d";
str +="e";
console.write(str) //output: abcde
Run Code Online (Sandbox Code Playgroud)
在内存中创建10个字符串:
"", "a", "b", "c", "d", "e", "ab", "abc", "abcd", and "abcde"
Run Code Online (Sandbox Code Playgroud)
虽然我可以理解为什么会发生这种情况,但我仍然无法理解为什么首先会有一个""字符串.有人可以暗示我吗?也许情况甚至不是这样的?C#文档没有说明问题.我唯一的猜测是C#的字符串是一个ref类型,所以它null默认情况下,但是...在这个例子中它在一开始就得到一个值,所以我有点困惑.