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変数が null であるためです。したがって、それを呼び出す前に確認する必要がありますcurrentaddr。あなたが示したソースコードからは、この変数がどこから来たのか、どのように初期化しているのかはかなり不明ですが、次のテストを追加できます:

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