четверг, 31 января 2008 г.

Немного о малоиспользуемых операторах С# №2

Прочитал сейчас вот это и сильно удивился. Как-то мне показалось, что оператора ?? в языке C# нет. Просто читал я о нем в контексте "неплохо было бы добавить вот такую фичу" и почему-то решил что это относится к 3.5 фреймворку. На всякий случай решил проверить - действительно работает во втором фреймворке :)

Вообщем, оператор очень полезный и иногда позволяет существенно сократить размеры кода за счет замены конструкций проверки значения на null.

Обычно такая проверка осуществляется следующими способами (в зависимости от контекста):

#1

if(value1 != null)
{
  ... //работаем с value1
}


#2

if(value1 == null)  return;


#3

value3 = value1 != null ? value1 : value2;
... // работаем с value3


Лично я предпочитаю использовать вариант №2 там где это возможно. Это позволяет уменьшить уровень вложенности внутри функции. А это, в свою очередь, упрощает ее чтение.

Использование же оператора ?? позволяет упростить запись #3:

#3.1

value3 = value1 ?? value2;
... // работаем с value3


Удобно!

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

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