在C#中,string是一个引用类型,但是为什么在另一个方法中操作后它没有改变

VIR*_*IRA 3 c# string reference-type

可能重复:
C#字符串引用类型?

说,我有一个叫做的字符串

string sample = "Initial value";
Run Code Online (Sandbox Code Playgroud)

传递给方法测试后()

public static void Test(string testString)
{
    testString = "Modified Value";
}
Run Code Online (Sandbox Code Playgroud)

如果我在通过测试(样品)后打印'样品',我除了它应该打印"修改值".

但它的印刷"初始价值".如果字符串是引用类型,为什么会这样?

但同样(预期的逻辑),为对象工作.有人可以请我清楚吗?

Tho*_*que 6

这与string作为引用类型无关.这是因为参数是按值传递的,而不是通过引用传递的.

如果你修改这样的方法,那么参数通过引用传递:

public static void Test(ref string testString)
{
    testString = "Modified Value";
}
Run Code Online (Sandbox Code Playgroud)

然后sample将被修改.

有关参数传递的更多详细信息,请参阅此文章