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

如何正确将类作为另一个类的属性?空引用异常排查

问题分析与解决

你遇到的是空引用异常(NullReferenceException),原因很明确:ConfigRegistry类里的Result属性属于引用类型(Config类),C#中引用类型的默认值为null,你在构造函数里直接访问Result.Release时,Result还没有被实例化为有效的Config对象,因此触发了异常。

两种修复方案:

方案一:在构造函数内先实例化Result

修改ConfigRegistry的构造函数,先创建Config实例再访问其属性:

public class ConfigRegistry
{
    public Config Result { get; set; }
        
    public ConfigRegistry (string registryKey)
    {
        Result = new Config(); // 先实例化Config对象
        Result.Release = 0; 
        Console.WriteLine("Read Release from registry: {0}", Result.Release);
    }
}

方案二:在属性声明时直接初始化

在Result属性定义阶段就完成实例化,确保构造函数执行前它已是有效对象:

public class ConfigRegistry
{
    // 声明时直接初始化Config实例
    public Config Result { get; set; } = new Config();
        
    public ConfigRegistry (string registryKey)
    {
        Result.Release = 0; 
        Console.WriteLine("Read Release from registry: {0}", Result.Release);
    }
}

内容的提问来源于stack exchange,提问作者user2838376

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:30:43