C# 添加到嵌套列表时的NullReference
我有课C# 添加到嵌套列表时的NullReference,c#,nested-lists,C#,Nested Lists,我有课 public class Gallery { public string method { get; set; } public List<List<object>> gidlist { get; set; } public int @namespace { get; set; } } 公共类库 { 公共字符串方法{get;set;} 公共列表gidlist{get;set;} public int@namespace{get;set;}
public class Gallery
{
public string method { get; set; }
public List<List<object>> gidlist { get; set; }
public int @namespace { get; set; }
}
公共类库
{
公共字符串方法{get;set;}
公共列表gidlist{get;set;}
public int@namespace{get;set;}
}
按钮代码
private void button1_Click(object sender, EventArgs e)
{
List<object> data = new List<object>();
data.Add(618395);
data.Add("0439fa3666");
Gallery jak = new Gallery();
jak.method = "gdata";
jak.gidlist.Add(data);
jak.@namespace = 1;
string json = JsonConvert.SerializeObject(jak);
textBox2.Text = json;
}
private void按钮1\u单击(对象发送者,事件参数e)
{
列表数据=新列表();
新增数据(618395);
数据。添加(“0439fa3666”);
画廊jak=新画廊();
jak.method=“gdata”;
jak.gidlist.Add(数据);
jak@namespace=1;
字符串json=JsonConvert.SerializeObject(jak);
textBox2.Text=json;
}
这里我得到System.NullReferenceException。如何将项目添加到gidlist?您得到了它,因为您现在在jak中初始化了列表 你可以:
public class Gallery
{
public Gallery()
{
gidlist = new List<List<object>>();
}
public string method { get; set; }
public List<List<object>> gidlist { get; set; }
public int @namespace { get; set; }
}
公共类库
{
公众席()
{
gidlist=新列表();
}
公共字符串方法{get;set;}
公共列表gidlist{get;set;}
public int@namespace{get;set;}
}
public List<List<object>> gidlist { get; set; } = new List<List<object>>()
public List gidlist{get;set;}=new List()
private List _gidlist=new List();
公开名单
{
获取{return\u gidlist;}
设置{u gidlist=value;}
}
Gallery jak=new Gallery();
jak.method=“gdata”;
jak.gidlist=新列表();
jak.gidlist.Add(数据);
jak@namespace=1;
如果在C#6.0之前,最佳实践将是选项1。如果是6.0或更高版本,则选项2。可能是Cool的副本,不知道C#6.0中的自动属性初始值设定项
private List<List<object>> _gidlist = new List<List<object>>();
public List<List<object>> gidlist
{
get { return _gidlist; }
set { _gidlist = value; }
}
Gallery jak = new Gallery();
jak.method = "gdata";
jak.gidlist = new List<List<object>>();
jak.gidlist.Add(data);
jak.@namespace = 1;