вторник, 3 марта 2015 г.

[Перевод] ?.: когда свойства в C# могут быть равны null @habrahabr



Чем больше я пишу на C# 6, тем больше убеждаюсь в том, насколько оператор ?. (null coalescing operator) помогает писать чистый простой и понятный код. Сегодня я покажу 4 ситуации, в которых он может быть очень полезен.



Большая вложенность


Рассмотрим следующую задачку. Имеется поставщик, у поставщика есть контактное лицо, у контактного лица есть домашний адрес, у домашнего адреса есть первая строка, а эту самую первую строку мы и хотим найти. Раньше мне пришлось бы писать код с большим уровнем вложенности, проверяя на null каждое значение в цепочке:




var location = default(string);
if (vendor != null)
{
if (vendor.ContactPerson != null)
{
if (vendor.ContactPerson.HomeAddress != null)
{
location = vendor.ContactPerson.HomeAddress.LineOne;
}
}
}




Но теперь у нас есть C# 6, с ним код можно привести на намного более читаемому виду:




var location = vendor?.ContactPerson?.HomeAddress?.LineOne;




Оператор ?. сделает так, что как только в одном из свойств цепочки окажется null, дальнейшее вычисление выражения производится не будет. Посмотрим ещё несколько примеров. Читать дальше →



via Хабрахабр / Интересные / Тематические публикации http://ift.tt/1Ef0JTZ

Комментариев нет:

Отправить комментарий