Предположим, у меня есть следующая иерархия классов:
Объект Person содержит объект Customer, а объект Customer содержит объект Address.
Мне все равно, есть ли у клиента адрес илинет, но если они это сделают, я хочу сохранить его в базе данных.Так что в этом случае вполне нормально иметь что-то вроде:
try
{
Address addr = person.Customer.Address;
db.SaveAddress(addr);
}
catch
{
//I don't care, but if it is there, just save it.
}
В вышеприведенном случае мне все равно, если Customer равен нулю или Address равен нулю.Другой вариант, который у меня был, был
if(person.Customer != null)
{
if(person.Customer.Address != null)
{
}
}
. Вышеприведенное может длиться долго, хотя иерархия длинная.Есть ли более элегантный способ проверить, является ли цепочка объектов нулевой, не проверяя каждый из них.