对象引用未设置为具有类的对象的实例

时间:2013-04-05 20:49:02

标签: c# class

我有一种情况,我在类中定义了一个类,类似于以下内容:

    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有关,但是我应该如何为它赋值?我是否需要以某种方式实例化子项的实例和实例?我将如何做到这一点?

任何帮助都会受到赞赏,我意识到这对某些人来说可能毫无疑问。

2 个答案:

答案 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)

您只声明了变量。您没有创建数组的新实例,因此您尝试访问尚未创建的对象。