亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在運行時訪問對象數組 - System.NullReferenceException

在運行時訪問對象數組 - System.NullReferenceException

C#
達令說 2023-09-16 17:41:55
我是 C# 新手,我的編碼有問題。我在運行時遇到錯誤。似乎沒有分配對象數組。歡迎任何幫助/提示。我有一個帶有修理室的“建筑”類。預計不會改變或增加房間。房間有很多屬性。在我的“Home”類中,我想通過對象數組訪問所有房間以及特定房間。提前致謝: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貢獻1801條經驗 獲得超16個贊

您試圖在調用Building.Buildings類的構造函數之前訪問靜態字段Building。創建實例后,Building靜態字段將被分配。您可能想使用靜態構造函數,如下例所示:

static Building()
{
    ...
    Buildings = new Building[] { room1, room2 };
}


查看完整回答
反對 回復 2023-09-16
  • 1 回答
  • 0 關注
  • 112 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號