首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C# 鋸齒數組未初始化導致 NullReferenceException

     編輯:程式設計疑難解答

錯誤代碼

string[][] data = new string[25][];
data[0] = new string[] { ... };
data[1] = new string[] { ... };
data[3] = new string[] { ... }; // 缺少 data[2]
// ...
for (int i = 0; i < data.Length; i++) {
    for (int j = 0; j < data[i].Length; j++) { // data[2] 為 null,拋出 NRE
        ...
    }
}

原因

data[2] 未賦值,默認 null。循環訪問 data[2].Length 觸發 NullReferenceException。

修正

  1. 補全初始化:data[2] = new string[0]; 或具體數組。
  2. 循環前判空:if (data[i] == null) continue;
  3. 改用 List<List<string>> 動態添加,避免固定大小數組留洞。

最佳實踐

var data = new List> {
    new List { "媽媽", "麻麻", ... },
    new List { "書房", "房間", ... },
    new List(), // 空列表佔位
    new List { "工作", "學習", ... },
    ...
};
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved