我在尝试将项目添加到列表时遇到问题。我看到很多问题,但我仍然不明白我的情况。 这是我的定义:
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:'未将对象引用设置为对象的实例。'”
我知道我的最后两个列表项在声明后为空,为什么我不能添加?
感谢任何帮助。
谢谢, 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;
}
选项 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>();
}
}
关于c# - 系统NullReferenceException : When adding item to a list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51353016/