L'operatore a coalescenza nulla in c # consente di abbreviare il codice
if (_mywidget == null)
return new Widget();
else
return _mywidget;
Giù verso:
return _mywidget ?? new Widget();
Continuo a scoprire che un operatore utile che vorrei avere in C # sarebbe quello che ti avrebbe permesso di restituire una proprietà di un oggetto, o qualche altro valore se l'oggetto è nullo. Quindi vorrei sostituirlo
if (_mywidget == null)
return 5;
else
return _mywidget.Length;
Con:
return _mywidget.Length ??! 5;
Non posso fare a meno di pensare che ci debba essere una ragione per cui questo operatore non esiste. È un odore di codice? C'è un modo migliore per scrivere questo? (Sono a conoscenza del modello di oggetti null ma sembra eccessivo usarlo per sostituire queste quattro righe di codice.)
??!
è un operatore in C ++. :-)