Ищу рекомендации по -практике. Допустим, у меня есть такая строка кода :
Color color = someOrder.Customer.LastOrder.Product.Color;
, где Customer, LastOrder, Product и Color могут быть null
при нормальных условиях. Однако я бы хотел, чтобы цвет был нулевым, если какой-либо из объектов на пути имеет значение null; чтобы избежать исключений нулевой ссылки, мне нужно проверить нулевое условие для каждого из объектов, например.
Color color = someOrder == null ||
someOrder.Customer == null ||
someOrder.Customer.LastOrder == null ||
someOrder.Customer.Product == null ?
null : someOrder.Customer.LastOrder.Product.Color;
или я мог бы сделать это
Color color = null;
try {color = someOrder.Customer.LastOrder.Product.Color}
catch (NullReferenceException) {}
Первый метод явно работает,но кажется немного более утомительным кодировать и труднее читать. Второй способ немного проще, но, вероятно, не стоит использовать для этого обработку исключений.
Есть ли другой быстрый способ проверки нулей и при необходимости присвоения нулей цвету? Или какие-либо мысли о том, как избежать NullReferenceExceptions при использовании таких вложенных ссылок?