У меня есть следующие два класса. Адреса содержат список адресов. Метод GetMailingAddress будет сканировать через AddressList для поиска определенного типа адреса.Доступ к переменной в объекте, содержащемся в другом объекте, когда дочерний объект имеет значение null
Class Addresses
{
public List<Address> AddressList {get; set;}
public Address MailingAddress {get { return GetMailingAddress();}
}
Class Address
{
public Int? ID {get; set;}
}
Чтобы получить доступ к идентификатор MailingAddress I введите следующее:
Addresses obj = new Addresses();
int? I = obj.MailingAddress.ID
Проблема заключается в том MailingAddress может возвращать нуль. Если это произойдет, вызов завершится неудачно, поскольку он ссылается на ID через нулевой объект. В этом случае я хотел бы вернуть значение null.
Чтобы обойти эту проблему, я использую этот код:
if(obj.MailingAddress == null)
{
I? = null;
}
else
{
I? = obj.MailingAddress.ID;
}
Есть ли способ вызова obj.MailingAddress.ID и возвращать нулевое значение, если MailingAddress является недействительным, не делать выше Если заявление.
Я мог бы также создать дополнительный метод/свойство внутри класса адресов, как это, но я снова вижу это как работа вокруг, а не чистое решение:
public int? MailingAddressID
{
if(GetMailingAddress == null)
{
return null;
}
else
{
return GetMailingAddress.ID;
}
}
Вы будете любить C# 6, то ... вы можете сделать 'вар я = OBJ .MailingAddress .id;' и вы получите нужное значение. см. https://dotnetfiddle.net/THfoBi –