为什么同样是C#引用类型变量,数组就可以通过传地址的方式在Stringtest函数中完成内容的修改。而字符串就不行?请看下方代码。加入Main中执行。可以发现传入的数组的第一个值被修改成了17,而传入的字符串变量m的的值,却没有因为函数中t的值被修改而发生改变!请问这是为什么呢?
string m = "abc";
string n;
int[] arr={1,2,3,4};
string Stringtest(string t,int[] intArr)
{
intArr[0]=17;
string k;
k = t;
k = "123";
t="456";
return k;
}
n = Stringtest(m,arr);