我有以下代码:

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/

10-13 07:48