关于 Array.Copy
Array.Copy是浅拷贝,
string[] str = new string[] { "hello ", "world " };
string[] str2 = new string[2];
Array.Copy(str, str2, str.Length);
str2[1] = "how are you ";
Console.WriteLine( "after Copy & Change: {0} ", str[1]);//显示world
从上面代码结果似乎string不是需动态分配内存的类型???还是Array.Copy对string类型特别处理?? 或者其他原因...
------解决方案--------------------字符串是托管对象,不是普通的数值
就象你说你的,这是浅拷贝,第一个数组存有指向 "hello "和 "world " 2个字符串的指针(引用),第二个数组在拷贝后也指向了这2个字符串,但随后,你改变了第二个数组里第二个对象的指针,但并没有改变第一个数组里的指针