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

控制台应用赋值类库中string数组时触发System.NullReferenceException求助

解决System.NullReferenceException:Object reference not set to an instance of an object.

别着急,你遇到的这个异常跟字符串数组的初始化完全没关系——问题出在你的class1对象根本没被实例化!

你看,在Program类里,你只是定义了public ClassOne class1 { get; set; }这个属性,但它默认是null的。当你在构造函数里直接去访问class1.SupportedFiles时,相当于在试图操作一个不存在的对象,自然就抛出空引用异常了。

修正方法很简单,两种方式任选其一:

方式1:在构造函数里先实例化class1

class Program 
{ 
    public ClassOne class1 { get; set; } 
    public Program() 
    { 
        // 先创建ClassOne的实例,给class1赋值
        class1 = new ClassOne();
        // 现在再给SupportedFiles赋值就没问题了
        class1.SupportedFiles = new string[] { "Test", "Test" }; 
        // class1.SupportedFiles[0] = "First"; 
        // class1.SupportedFiles[1] = "Second"; 
    } 
}

方式2:在属性声明时直接初始化

class Program 
{ 
    // 声明属性的同时就完成实例化
    public ClassOne class1 { get; set; } = new ClassOne(); 
    public Program() 
    { 
        class1.SupportedFiles = new string[] { "Test", "Test" }; 
        // class1.SupportedFiles[0] = "First"; 
        // class1.SupportedFiles[1] = "Second"; 
    } 
}

再强调一下:你写的new string[] { "Test", "Test" }这段数组初始化代码是完全正确的,以后遇到类似的空引用异常,先检查是不是某个对象没被实例化就直接用了~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:09:43