我有一个带有各种子类的mainclass
。
public class Mainclass
{
public List<main> mainset { get; set; }
// do sth to load and save model info
}
public class main
{
public personalinfo info { get; set; }
public addressinfo currentaddr { get; set; }
public addressinfo[] otheraddr { get; set; }
public telephone currenttel { get; set; }
public telephone[] othertel { get; set; }
}
public class addressinfo
{
public string Addressline1 { get; set; }
public string Addressline2 { get; set; }
public string City { get; set; }
public string postcode { get; set;
}
public class telephone
{
public int tel { get; set; }
}
如何检查孩子是否已初始化?我尝试过以下但是即使我尝试检查,我也会得到Null异常!Null。
if (main.currentaddr != null)
{
addressinfo add = new addressinfo();
//do sth
}
答案 0 :(得分:6)
失败的原因是因为main
变量为空。因此,在尝试呼叫currentaddr
之前,您应该检查一下。从源代码中可以看出,这个变量来自何处以及如何初始化它,但你可以添加以下测试:
if (main != null && main.currentaddr != null)
{
addressinfo add = new addressinfo();
//do sth
}