我有一個名爲「Tiles」的類。將對象數組傳遞給函數
public class Tiles
{
public int cordX, cordY, tileID;
Booleans someBooleans;
public constructor(int X,int Y,int ID)
}
程序創建一個2D網格並將信息(XY位置,tileID)存儲在Tiles類的對象數組中。就像這樣:
通過兩次創建新的對象數組
Tiles[] tileArray = new Tiles[totalGridSize];
環實例的單個元素的對象數組
tileArray[X + Y] = new Tiles(xPos, yPos, ID);
到目前爲止,一切都按預期工作英寸但是現在我想將tileArray的元素傳遞給一個函數。 (是沒關係的功能是靜態的?)
public static void tileStatusChecker(Tiles x[])<---
{
Console.WriteLine("Position is {0}X and {1}Y. ID=={2}", x.cordX, x.cordY, x.tileID)
}
==這給我的錯誤:
Error CS1552 Array type specifier, [], must appear before parameter name
不夠公平,那一定是很容易修復。
public static void tileStatusChecker(Tiles[] x)
{
Console.WriteLine("Position is {0}X and {1}Y. ID=={2}", x.cordX, x.cordY, x.tileID)
}
現在,編譯器是真的氣我:CS1061「的瓷磚[]」不包含關於「tileID」和沒有擴展方法的定義「tileID」接受型的第一參數「的瓷磚[]」可以找到(你是否缺少一個使用指令或程序集引用?)
同時編譯器也瘋了,我首先調用函數,聲明數組從未創建。
Tiles.tileStatusChecker(tileArray[7]);
CS0103 The name 'tileArray' does not exist in the current context
我有一個標準的「學習C#和Visual Studio」的書在我旁邊,但對象數組不涵蓋的。我認爲這裏的實際錯誤是我不知道自己在做什麼。那麼有誰能告訴我如何將一個對象數組傳遞給一個方法?我不想只複製+粘貼代碼並讓某人爲我修復它。我試圖在stackoverflow上找到一個解決方案,但在搜索「C#object array to function」或類似搜索結果後得到了10,214個結果。
請花費更多時間來格式化您的代碼。你根本沒有縮進,並且在某一時刻,你已經在'{'的同一行上獲得了一個方法體。你應該努力使問題儘可能容易閱讀。 –
但它聽起來像你真的不感興趣傳遞整個陣列,而是一個瓦片。只需將'Tiles []'更改爲'Tile',即可解決這兩個問題。畢竟,'tileArray [7]'的值是一個'Tiles'引用,而不是一個數組......並且打印出「數組的位置」的想法是毫無意義的。現在也是查找.NET命名約定的好時機。 –
嗯,我建議你讓你的IDE格式化代碼,並確保它看起來像這個問題。 (目前還不清楚布爾人是什麼......) –