O operador de coalescência nula em c # permite reduzir o código
if (_mywidget == null)
return new Widget();
else
return _mywidget;
Até:
return _mywidget ?? new Widget();
Eu continuo achando que um operador útil que eu gostaria de ter em C # seria aquele que lhe permitisse retornar uma propriedade de um objeto ou algum outro valor se o objeto for nulo. Então eu gostaria de substituir
if (_mywidget == null)
return 5;
else
return _mywidget.Length;
Com:
return _mywidget.Length ??! 5;
Não consigo deixar de pensar que deve haver alguma razão para esse operador não existir. É um cheiro de código? Existe alguma maneira melhor de escrever isso? (Estou ciente do padrão de objeto nulo, mas parece um exagero usá-lo para substituir essas quatro linhas de código.)
??!
é um operador em C ++. :-)