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

C# System.NullReferenceException:将项添加到列表时,c#,nullreferenceexception,C#,Nullreferenceexception,我在尝试将项目添加到列表时遇到问题。我看到很多问题,但我还是不明白。 这是我的定义: public class DBStatus { [DataMember] public DBOperation Type { get; set; } [DataMember] public List<DBMessageType> Message { get; set; } [DataMember]

我在尝试将项目添加到列表时遇到问题。我看到很多问题,但我还是不明白。 这是我的定义:

public class DBStatus
    {
        [DataMember]
        public DBOperation Type { get; set; }
        [DataMember]
        public List<DBMessageType> Message { get; set; }
        [DataMember]
        public List<string> InnerException { get; set; }
    }
添加项目时,我得到System.NullReferenceException

错误消息:“System.NullReferenceException:'对象引用未设置为对象的实例'。”

我知道我的最后两个列表项是空的post声明,为什么我不能添加

感谢您的帮助

谢谢,
PG

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

选项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;
    }
private void按钮19\u单击1(对象发送者,事件参数e)
{
DBStatus dbstst=新的DBStatus();
dbstst.Message=新列表();
dbstst.Message.Add(DBMessageType.INVALID\u或\u EXPIRED\u函数\u请求);
dbstst.InnerException=新列表();
dbstst.InnerException.Add(“测试代码”);
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>();
        }
    }
公共类DBStatus
{
[数据成员]
公共数据库操作类型{get;set;}
[数据成员]
公共列表消息{get;set;}
[数据成员]
公共列表内部异常{get;set;}
public DBStatus(){//在此处初始化
消息=新列表();
InnerException=新列表();
}
}

非常感谢,可能是重复的。选项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>();
        }
    }