我不明白这个字符串是不可变的区别,而string.builder在c#中是不可变的。我只是想告诉你我知道英语中不可变和可变的含义,但在c#语言中却不理解,因为我们可以改变字符串这样的地方是不可变的概念吗?
string a = "hello";
a="hello"+"world";
Console.WriteLine(a);
是否有任何我通过示例阅读和理解的文章 非常感谢你的回复。
答案 0 :(得分:2)
你没有"改变"原始字符串 - 您正在创建新字符串。通过不可变,它意味着像这样的事情:
a.ToUpper();
不要修改a
- 他们返回一个新字符串,所以
b = a.ToUpper();
b
和a
是不同的字符串。
在您的示例中,
string a = "hello";
a="hello"+"world";
Console.WriteLine(a);
a
是变量,在第二行执行后引用 new 字符串。