1

我有mainclass各种子类的 aa。

 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
}
4

1 回答 1

6

失败的原因是main变量为空。所以你应该在尝试调用它之前检查currentaddr它。从您显示的源代码中很不清楚这个变量来自哪里以及如何初始化它,但您可以添加以下测试:

if (main != null && main.currentaddr != null)
{
    addressinfo add = new addressinfo();
    //do sth 
}
于 2013-07-02T13:01:43.257 回答