我知道C#中的“字符串”是引用类型。这是在MSDN上。但是,此代码无法正常运行,因此应:
class Test
{
public static void Main()
{
string test = "before passing";
Console.WriteLine(test);
TestI(test);
Console.WriteLine(test);
}
public static void TestI(string test)
{
test = "after passing";
}
}
由于我将字符串作为参数传递并且是引用类型,因此输出应为“传递前”或“传递后”,第二个输出语句应识别出TestI方法中的文本已更改。但是,我得到“通过之前”“通过之前”,似乎它是通过值而不是通过引用传递的。我知道字符串是不可变的,但是我看不出它怎么解释这里发生的事情。我想念什么?谢谢。