说的不对的地方请大家指教哈~刚学C#
值类型 可以直接的进行类似a=b进行复制一份数据
引用类型 a=b的结果是a只保存了b数据的地址,此时a与b指向同一个数据,名字不同而已
string同样算为引用类型,但是string内容改变,.NET会给他重新分配一个内存空间存放新的字符串内容,而不是在老的地址上进行改写。
所以
Code
string a = "I'm Coffee";
string b;
b = a;
Console.WriteLine(a);
b = "Hello";
Console.WriteLine(a);
string a = "I'm Coffee";
string b;
b = a;
Console.WriteLine(a);
b = "Hello";
Console.WriteLine(a);
输出结果是:
I'm Coffee
I'm Coffee
因为当执行了b = "Hello",.NET申请了一块内存存放了Hello字符串,然后返回一个地址给b,所以对b的改变不影响a