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