我有以下兩個類。地址包含地址列表。方法GetMailingAddress將通過AddressList進行掃描,尋找特定類型的地址。當子對象爲空時訪問包含在另一個對象中的對象的變量
Class Addresses
{
public List<Address> AddressList {get; set;}
public Address MailingAddress {get { return GetMailingAddress();}
}
Class Address
{
public Int? ID {get; set;}
}
要訪問MailingAddress我的ID可以鍵入以下內容:
Addresses obj = new Addresses();
int? I = obj.MailingAddress.ID
問題是MailingAddress可以返回null。如果發生這種情況,調用將失敗,因爲它通過空對象引用ID。在這個例子中,我想返回null。
要解決此我使用此代碼:
if(obj.MailingAddress == null)
{
I? = null;
}
else
{
I? = obj.MailingAddress.ID;
}
有沒有一種方法來調用obj.MailingAddress.ID而無需做上面的if語句返回null MailingAddress爲null。
我還可以創建類地址這樣內的附加方法/屬性,但我又認爲這是一個解決辦法,而不是一個乾淨的解決方案:
public int? MailingAddressID
{
if(GetMailingAddress == null)
{
return null;
}
else
{
return GetMailingAddress.ID;
}
}
你一定會喜歡C#6,然後......你可以做'變種I = OBJ .MailingAddress .ID;'和你會得到你想要的價值。請參閱:https://dotnetfiddle.net/THfoBi –