如何检查类中的对象是否已初始化?

时间:2013-07-02 12:59:22

标签: c#

我有一个带有各种子类的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
}

1 个答案:

答案 0 :(得分:6)

失败的原因是因为main变量为空。因此,在尝试呼叫currentaddr之前,您应该检查一下。从源代码中可以看出,这个变量来自何处以及如何初始化它,但你可以添加以下测试:

if (main != null && main.currentaddr != null)
{
    addressinfo add = new addressinfo();
    //do sth 
}