我是 C# 新手,我的編碼有問題。我在運(yùn)行時(shí)遇到錯(cuò)誤。似乎沒有分配對(duì)象數(shù)組。歡迎任何幫助/提示。我有一個(gè)帶有修理室的“建筑”類。預(yù)計(jì)不會(huì)改變或增加房間。房間有很多屬性。在我的“Home”類中,我想通過對(duì)象數(shù)組訪問所有房間以及特定房間。提前致謝:Class Home{private void StartProgramm() { //get all Objects of class "Building" Building[] building = Building.Buildings; //System.NullReferenceException during runtime set_label_header(building[0].Name); //Access to room1 Building room1 = Building.room1; set_label_header(room1.Name); //Get room2 Building room2 = Building.GetBuilding("room2"); set_label_header(room2?.Name); }} class Building { public string Name { get; set; } public ArrayList tool_groupList = new ArrayList(); public ArrayList pos_List = new ArrayList(); public ArrayList inv_list = new ArrayList(); public static Building room1; public static Building room2; public static Building[] Buildings; public Building() { //create room 1 and add some attributes room1 = new Building { Name = "room1" }; room1.tool_groupList.Add(1); room1.tool_groupList.Add(2); room1.pos_List.Add(14); room1.pos_List.Add(15); room1.pos_List.Add(16); room1.pos_List.Add(17); Iventory[] inventories = Inventory.get_inventories(); room1.areaList.AddRange(inventories); }
1 回答

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
您試圖在調(diào)用Building.Buildings
類的構(gòu)造函數(shù)之前訪問靜態(tài)字段Building
。創(chuàng)建實(shí)例后,Building
靜態(tài)字段將被分配。您可能想使用靜態(tài)構(gòu)造函數(shù),如下例所示:
static Building() { ... Buildings = new Building[] { room1, room2 }; }
- 1 回答
- 0 關(guān)注
- 109 瀏覽
添加回答
舉報(bào)
0/150
提交
取消