boolean上的空引用异常,在自定义嵌套的类数组中

时间:2015-09-28 20:02:56

标签: c#

我已经创建了一组自定义类,以按特定顺序包含我需要的一些信息。除了最后一个类之外,每个类都包含一个类的数组。

自定义类如下。

public class Quote
{
    public int ServiceQuoteId;

    public bool Begin = new bool();

    public PricingGroup[] PricingOptionGroup = new PricingGroup[10];
}
public class PricingGroup
{
    public int ItemId;

    public string ALocation;

    public bool LocSet = new bool();

    public Product[] Group = new Product[10];
}
public class Product
{
    public int Total1;

    public ProductGroup[] Set = new ProductGroup[10];

    public string Term;
}
public class ProductGroup
{
    public string Product;

    public int Charge;

    public bool Option = new bool();
}

创建对象的实例后,如下(下图)

Quote testQuote = new Quote();

我尝试测试其中一个布尔值(如下所示。

if (!testQuote.PricingOptionGroup[0].LocSet)

但这给了我这个错误。

"An exception of type 'System.NullReferenceException' occurred in WebApplication3.dll but was not handled in user code

Additional information: Object reference not set to an instance of an object."

我想做的事可能是不可能的;但从逻辑上讲,我认为这是有道理的。根据我的理解,新的bool()初始化为false。

1 个答案:

答案 0 :(得分:0)

您已经为10个ProductOptionGroups分配了空间,但实际上并没有在其中放置任何空间。

这是初始化ProductOptionGroups的一种方法:

public class Quote
{
    public int ServiceQuoteId;

    public bool Begin = new bool();

    public PricingGroup[] PricingOptionGroup = new PricingGroup[10];
    public Quote(){

        PricingOptionGroup=Enumerable.Range(0,10).Select(i=>new PricingGroup()).ToArray();
    }
}

这是另一个:

public class Quote
{
    public int ServiceQuoteId;

    public bool Begin = new bool();

    public PricingGroup[] PricingOptionGroup = { 
        new PricingGroup(),
        new PricingGroup(),
        new PricingGroup(),
        new PricingGroup(),
        new PricingGroup(),
        new PricingGroup(),
        new PricingGroup(),
        new PricingGroup(),
        new PricingGroup(),
        new PricingGroup()
    };
}