为了账号安全,请及时绑定邮箱和手机立即绑定

System.NullReferenceException:将项目添加到列表时

System.NullReferenceException:将项目添加到列表时

C#
弑天下 2021-10-09 10:55:01
尝试将项目添加到列表时遇到问题。我看到很多问题,但在我的情况下我仍然不明白。这是我的定义:public class DBStatus    {        [DataMember]        public DBOperation Type { get; set; }        [DataMember]        public List<DBMessageType> Message { get; set; }        [DataMember]        public List<string> InnerException { get; set; }    }我声明了这个类并尝试添加一个项目。private void button19_Click_1(object sender, EventArgs e)    {        DBStatus dbstst = new DBStatus();        dbstst.Message.Add(DBMessageType.INVALID_OR_EXPIRED_FUNCTION_REQUEST);        dbstst.InnerException.Add("testing code");        int k = 0;    }添加项目时出现 System.NullReferenceException。错误消息:“System.NullReferenceException:'未将对象引用设置为对象的实例。'”我知道我的最后两个列表项是空的 post 声明,为什么我不能添加?
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

默认情况下,列表为空,您需要在向列表中添加元素之前初始化列表


选项1 :


private void button19_Click_1(object sender, EventArgs e)

    {

        DBStatus dbstst = new DBStatus();


        dbstst.Message = new List<DBMessageType>();

        dbstst.Message.Add(DBMessageType.INVALID_OR_EXPIRED_FUNCTION_REQUEST);


        dbstst.InnerException = new List<string>();

        dbstst.InnerException.Add("testing code");


        int k = 0;

    }

选项 2: 您也可以通过类构造函数执行此操作:


public class DBStatus

    {

        [DataMember]

        public DBOperation Type { get; set; }

        [DataMember]

        public List<DBMessageType> Message { get; set; }

        [DataMember]

        public List<string> InnerException { get; set; }


        public DBStatus(){ //initialize here

          Message = new List<DBMessageType>();

          InnerException = new List<string>();

        }

    }


查看完整回答
反对 回复 2021-10-09
  • 1 回答
  • 0 关注
  • 195 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信