我有以下代码:
string[] firstArray = { "bla bla", "bla bla", "bla bla"};
string[] secondArray = {"aaaaaaaaaaaa", "aaaaaaaaaaa", "aaaaaaaaa"};
string[] newArray = firstArray;
firstArray = secondArray;
foreach (string item in newArray)
{
Console.WriteLine(item);
}
此代码给出以下结果:
bla bla
bla bla
bla bla
我将不同的实例分配给firstArray之后,为什么newArray具有相同的内容,我还是无法理解。请帮我。
最佳答案
您正在为数组分配引用,而不是数组本身。
string[] firstArray = { "bla bla", "bla bla", "bla bla"};
firstArray引用了blabla数组。
string[] secondArray = {"aaaaaaaaaaaa", "aaaaaaaaaaa", "aaaaaaaaa"};
secondArray引用了aaaaaaaaaaaaaa数组。
string[] newArray = array;
我猜某个地方有一个
array = firstArray
。 newArray拥有与firstArray(blabla)相同的数组的引用。array = secondArray;
array拥有对与secondArray(aaaaaaaaaaaaaa)相同的数组的引用。
foreach (string item in newArray)
newArray仍然保留对blabla数组的引用,以便进行打印。
关于c# - 复制阵列问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2662965/