在for循环中,数组值似乎与不在循环中时不同;t

本文关键字:循环 for 数组 | 更新日期: 2023-09-27 18:30:14

我有一个包含值的多维数组。我使用两个for循环来循环遍历每个项目,并为它们添加一个值。在数组中,它们返回正确的值,但当它退出并且我得到值时,它就完全不同了。例如:

  • 循环前:[[1,1],[2,2],[3,3]]
  • 循环期间:[[2,2],[3,3],[4,4]]
  • 回路后[[50,50][65,65][90,90]]

它似乎只是随机变化。

int[,] squareB = baseSquare;
int[,] squareC = baseSquare;
int[,] squareD = baseSquare;
Console.WriteLine("{0}", squareB[0, 1]);
for (int x = 0; x < sub; ++x)
{
     for (int y = 0; y < sub; ++y)
     {
          squareB[x, y] += 9;
          Console.WriteLine("{0}", squareB[x, y]);
          squareC[x, y] += 18;
          squareD[x, y] += 27;
     }
}
Console.WriteLine("{0}", squareB[0, 1]);

在for循环中,数组值似乎与不在循环中时不同;t

您在每次循环迭代中修改的数组树时间完全相同:

      squareB[x, y] += 9;
      squareC[x, y] += 18;
      squareD[x, y] += 27;

这些都改变了完全相同的值。