0

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

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

任何帮助将不胜感激,我意识到这对某些人来说可能是没有道理的。

4

2 回答 2

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" });
于 2013-04-05T20:52:43.313 回答
1

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

于 2013-04-05T20:53:32.753 回答