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

System.NullReferenceException: When adding item to a list

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

public class DBStatus
    {
        [DataMember]
        public DBOperation Type { get; set; }
        [DataMember]
        public List<DBMessageType> Message { get; set; }
        [DataMember]
        public List<string> InnerException { get; set; }
    }

我声明了这个 class 并试图添加一个项目。

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: 'Object reference not set to an instance of an object.'"

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

感谢任何帮助。

谢谢, PG

List默认为null,添加元素前需要初始化列表

选项 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: 您也可以通过 class 构造函数执行此操作:

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>();
        }
    }