我有一种情况,我在类中定义了一个类,类似于以下内容:
public partial class ProdData
{
private string prodID;
private string Description;
...and so on until I get to
private ProdDataChildren[] childItemsField;
}
ProdDataChildren是它自己的类,我用它来识别可能属于父产品的子产品,因此也就是数组。
在我的程序的主要部分,我有一个读取记录的循环,有点像:
while (myReader.Read())
{
ProdData ProductDataIn = new ProdData();
ProductDataIn.ID = "values assigned here";
直到我到达那里我想要分配一个孩子,这是我得到错误“对象引用未设置为对象的实例”的地方,使用以下语句
ProductDataIn.ChildItems[i].ProdID = "string variable here";
}
我相信错误的原因与当前ChildItems被设置为null有关,但是我应该如何为它赋值?我是否需要以某种方式实例化子项的实例和实例?我将如何做到这一点?
任何帮助都会受到赞赏,我意识到这对某些人来说可能毫无疑问。
答案 0 :(得分:2)
首先,您必须在为该集合分配任何内容之前初始化您的字段。我建议使用List
代替Array
:
public partial class ProdData
{
...and so on until I get to
private List<ProdDataChildren> childItemsField = new List<ProdDataChildren>();
}
使用List
,您可以执行以下操作:
ProductDataIn.ChildItems.Add(new ProdDataChildren() { ProdID = "string variable here" });
答案 1 :(得分:1)
您只声明了变量。您没有创建数组的新实例,因此您尝试访问尚未创建的对象。