尝试将项目添加到列表时遇到问题。我看到很多问题,但我仍然不明白。 这是我的定义:
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
答案 0 :(得分:0)
默认情况下,列表为空,您需要先初始化列表,然后才能向其中添加元素
选项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>();
}
}