El operador de fusión nula en C # le permite acortar el código
if (_mywidget == null)
return new Widget();
else
return _mywidget;
Abajo a:
return _mywidget ?? new Widget();
Sigo encontrando que un operador útil que me gustaría tener en C # sería uno que le permitiera devolver una propiedad de un objeto, o algún otro valor si el objeto es nulo. Entonces me gustaría reemplazar
if (_mywidget == null)
return 5;
else
return _mywidget.Length;
Con:
return _mywidget.Length ??! 5;
No puedo evitar pensar que debe haber alguna razón para que este operador no exista. ¿Es un olor a código? ¿Hay alguna forma mejor de escribir esto? (Soy consciente del patrón de objeto nulo, pero parece excesivo usarlo para reemplazar estas cuatro líneas de código).
??!
es un operador en C ++. :-)