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

标签 c# string reference-type

<分区>

Possible Duplicate:
C# string reference type?

比如说,我有一个字符串叫做

string sample = "Initial value";

传递给方法test()之后

public static void Test(string testString)
{
    testString = "Modified Value";
}

如果我在通过 Test(sample) 后打印“sample”,除了它应该打印“Modified Value”。

但它打印“初始值”。如果字符串是引用类型,为什么会出现这种情况?

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

最佳答案

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

如果您像这样修改您的方法,以便通过引用传递参数:

public static void Test(ref string testString)
{
    testString = "Modified Value";
}

然后修改sample

参见 this article有关参数传递的更多详细信息。

关于c# - 在 C# 中,string 是一个引用类型,但为什么在另一个方法中操作它后它没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12260144/

相关文章:

c# - 从 DateTime 对象中减去一天

c# - 如何在MVC中从Controller动态创建多个ActionLink?

c# - 您可以在不同的线程上重新抛出 .NET 异常吗?

SQL Server 多个替换

javascript - 返回长度为 5 的空白数组

c# - C# 和 VB.NET 之间最重要的功能区别是什么?

c - 获取文件扩展名 C 错误

ios - 如何解析快速字符串以获取数据

C# 只读对象

c# - c#中的引用类型和值类型有什么区别?