我正在学习C#,并被告知字符串是不可变的,这意味着一旦为它们分配了值,就不能更改该值。但是,事实并非如此。参见下面的代码:
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string myString = "Hello World";
myString = "Hello Stack Overflow";
Console.WriteLine(myString);
}
}
}
// Output:
// Hello Stack Overflow
如果我理解正确,则行myString = "Hello Stack Overflow"
会产生错误,但不会。我可以轻松地成功更改字符串的值。
我是误解了这个概念,还是改变了字符串的不变性?