Оператор нульового поєднання в 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 ++. :-)