2
目标是一些瓷砖的对象和自定义属性复制到一个2D阵列,但是我有意想不到的效果:编辑字段
for (int i = 0; i<3; i++)
{
for (int j = 0; j<3; j++)
{
TileList[i][j] = Tiles[3];
//the goal is the overwrite the MapX and MapY fields of each element of the new Array
TileList[i][j].MapX = i;
TileList[i][j].MapY = j;
}
}
打印出值中的每个元件的每个的MapX后和每个元素的MapY字段都有自己独立的值,但是对于2d阵列中的每个tile对象引用,MapX和MapY都设置为3。
您的解决方案工作,这带来了另一个问题,为什么有必要使用瓷砖[] [] TileList =新瓷砖[] [];在循环之前实例化,起初它没有工作,并且得到一个空指针豁免,直到我使用上述语句 – hec
您必须先创建数组,然后才能将其放入。创建矩形二维数组的最简单方法是在前面指定两个维度 - 例如'Tile [] [] tileList = new Tile [3] [3]'。这将创建一个包含空引用的数组,您可以使用'new Tile()'填充该引用。 –