在自定义类嵌套数组中,布尔值上的空引用异常
本文关键字:引用 异常 布尔值 自定义 嵌套 数组 | 更新日期: 2023-09-27 18:14:51
我已经创建了一组自定义类,以特定的顺序包含我需要的一些信息。除了最后一个类之外,每个类都包含其下面的类数组。
自定义类如下。
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."
我想做的可能是不可能的;但从逻辑上讲,我相信这是有道理的。根据我的理解,new bool()初始化为false。
您已经为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()
};
}