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()'填充該引用。 –