Нулевой оператор в c # позволяет сократить код
if (_mywidget == null)
return new Widget();
else
return _mywidget;
Вниз до:
return _mywidget ?? new Widget();
Я продолжаю находить, что полезным оператором, который я хотел бы иметь в C #, был бы тот, который позволял бы вам возвращать свойство объекта или какое-либо другое значение, если объект нулевой. Поэтому я хотел бы заменить
if (_mywidget == null)
return 5;
else
return _mywidget.Length;
С:
return _mywidget.Length ??! 5;
Я не могу не думать, что должна быть какая-то причина, по которой этот оператор не существует. Это запах кода? Есть ли лучший способ написать это? (Я знаю о шаблоне нулевого объекта, но, кажется, излишне использовать его для замены этих четырех строк кода.)
??!
является оператором в C ++. :-)