string对象保留在堆上而不是堆栈。因此当把一个字符串变量赋给另一个字符串时,会得到对内存中字符串的两个引用。然后,修改其中一个字符串,**注意这回创建一个完全新的string对象,而另一个字符串没有改变。
using System;
class StringExample
{
public static int Main()
{
string s1="A string";
string s2=s1;
Console.WriteLine("s1 is" +s1);
Console.WriteLine("s2 is" +s2);
s1="Another string";
Console.WriteLine("s1 is now" +s1);
Console.WriteLine("s2 is num" +s2);
return 0;
}
}
输出结果:s1 is A string
s2 is A string
s1 is now Another string;
s2 is now A string