C#中类型分为值类型和引用类型,其中string是引用类型。从第三个例子中看string似乎是值类型,但从第四个例子很容易能够看出string其实是引用类型,这个需要注意。
namespace ConsoleApplication1
{
class A
{
public int a;
}
class Program
{
static void Main(string[] args)
{
int a=4;
int b=a;
a=8;
Console.WriteLine(a);
Console.WriteLine(b);
A cA=new A();
cA.a=4;
A cB=cA;
cA.a=4;
Console.WriteLine(cA.a);
Console.WriteLine(cB.a);
string s = "1234";
string CopyS = s;
s = "abcd";
Console.WriteLine(s);
Console.WriteLine(CopyS);
string sA= "1234";
string sB = new string(sA.ToCharArray() );
string CopySs = s;
sB = "abcd";
Console.WriteLine(sB);
Console.WriteLine(CopySs);
}
}
}
输出:
8
4
4
4
abcd
1234
abcd
abcd