0

我有以下代码:

BlockTypes[,] BackupQuad = EditModeBlocks.ListOfBlocks; //Create Backup

for (int x = 0; x < 16; x++)
{
    for (int y = 0; y < 16; y++)
    {
        //Translate each point to the opposite side
        EditModeBlocks.ListOfBlocks[15 - x, y] = BackupQuad[x, y]; 
    }
}

首先,它组成一个备份(BackupQuad),然后循环遍历备份阵列中的每个“块”。然后它从备份阵列中读取块并将其重写为原始阵列为 15 - X。(我也尝试了 16 - x,但没有工作)。它在大多数情况下都有效,但它会将一半复制到另一侧,删除那里的所有内容。 在此处输入图像描述

4

1 回答 1

5

首先它组成一个备份(BackupQuad)

不,真的没有。这只是引用的副本。如果要获取实际对象的副本,则必须明确地这样做。例如:

BlockTypes[,] BackupQuad = (BlockTypes[,]) EditModeBlocks.ListOfBlocks.Clone();
于 2012-11-22T21:10:55.927 回答