System.NullReferenceException异常排查及对象列表操作方法咨询
解决List的System.NullReferenceException异常问题
问题原因
你代码里的Faculties属性仅声明了get/set访问器,但没有初始化实例,默认值为null,调用Add方法时自然会触发"未将对象引用设置到对象的实例"异常。同理,如果FacultiesManager.Faculties是未初始化的静态属性,那faculties变量也会是null。
正确操作方式
1. 直接在属性声明时初始化
// 声明时直接创建List实例 public List<Faculty> Faculties { get; set; } = new List<Faculty>(); // 确保FacultiesManager的静态属性也已初始化 public class FacultiesManager { public static List<Faculty> Faculties { get; set; } = new List<Faculty>(); } // 之后正常调用Add方法 Faculties.Add(something);
2. 在构造函数中初始化
如果是实例类的属性,可在类的构造函数里完成初始化:
public class YourClass { public List<Faculty> Faculties { get; set; } public YourClass() { // 构造函数中实例化List Faculties = new List<Faculty>(); } }
3. 静态属性的初始化(针对FacultiesManager)
如果FacultiesManager.Faculties是静态属性,除了声明时初始化,也可以用静态构造函数:
public class FacultiesManager { public static List<Faculty> Faculties { get; set; } static FacultiesManager() { Faculties = new List<Faculty>(); } }
额外注意
如果要复用FacultiesManager.Faculties的实例,需先确认实例存在,不存在则创建:
// 检查并初始化静态属性实例 if (FacultiesManager.Faculties == null) { FacultiesManager.Faculties = new List<Faculty>(); } FacultiesManager.Faculties.Add(something);
内容的提问来源于stack exchange,提问作者nomnom
相关产品推荐
相关产品推荐

