我有一个类,其中有另一个类数组,其中包含我需要传递数据的大多数字段。但是当我将数据传递给父对象时,我得到的对象引用没有设置为对象错误的实例。
场景如下所述:
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对象?
答案 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;