需要帮助将值从子对象绑定到父对象

时间:2011-08-19 17:33:32

标签: c# arrays class

我有一个类,其中有另一个类数组,其中包含我需要传递数据的大多数字段。但是当我将数据传递给父对象时,我得到的对象引用没有设置为对象错误的实例。

场景如下所述:

class Request{
public PriceInfo[] Price{ get; set;}
}

class PriceInfo{
public int PriceID{get; set;} public string Country{get; set;} 
public string Package{get; set;}
}

现在在我的代码中,我实例化了PriceInfo的一个对象,并为每个字段分配了适当的值。

PriceInfo objPrice = new PriceInfo();
objPrice.PriceID = value1;
objPrice.Country = value2;

但是当我尝试将值分配给父类对象时,它会抛出错误。说

Request objReq = new Request();
objReq.PriceInfo = objPrice  //This line throws the error. 

如何将objPrice对象中的数据传递给Parent对象?

4 个答案:

答案 0 :(得分:0)

你需要这样做

objReq.Price[i] = objPrice

因为父级的PriceInfo []是PriceInfo对象的数组而不是PriceInfo对象

在将对象添加到数组之前,看看它是否已初始化,最好的方法是在构造函数中初始化它。但我建议你使用List,因为在声明数组时你需要添加你可能不知道的大小,因为PriceInfo的List是动态的。

答案 1 :(得分:0)

您需要先创建数组,然后将对象添加到数组中。

    objReq.Price = new PriceInfo[1];
    objReq.Price[0] = new PriceInfo();

当然,您可以在构造函数中初始化数组并相应地调整大小。

List<PriceInfo>可能比数组更有用,因为它更适合开发人员。

答案 2 :(得分:0)

向Request类添加一个默认构造函数,用于初始化PriceInfo属性。然后,您可以根据需要将对象添加到数组中。

在旁注中,使用List<PriceInfo>而不是数组。这将允许您动态添加或删除子项而无需重新分配数组。

答案 3 :(得分:0)

我会考虑使用List而不是Array。

public List Price{ get; set;} 

而不是:

public PriceInfo[] Price{ get; set;} 

和此:

Request objReq = new Request();
objReq.PriceInfo.Add(objPrice);

而不是:

Request objReq = new Request();
objReq.PriceInfo = objPrice;