You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:22:07