后保持不变据我所知字符串是引用类型,当你发送一个引用类型的功能,如果你改变它的价值,原始对象的值会发生变化,但为什么当我打电话更改功能原始字符串保持不变。但是当我有一个类的对象并将其发送给一个函数时,它的原始值将会改变。这里有一个例子:为什么字符串值保持调用函数
static void Main(string[] args)
{
string x = "Hi";
Change(x);
Console.WriteLine(x);
var y = new Test();
y.Str = "Hi";
Change(y);
Console.WriteLine(y.Str);
Console.ReadKey();
}
static void Change(string str)
{
str = "Test";
}
static void Change(Test x)
{
x.Str = "Test";
}
输出是“Hi”,而不是“测试”的字符串,但对测试对象是“测试”
字符串是不可变的 –
@TimSchmelter真的,但它不是这个特定问题的答案。 –
https://msdn.microsoft.com/en-us/library/0f66670z.aspx – SquidScareMe