Mit dem Null-Koaleszenz-Operator in c # können Sie den Code verkürzen
if (_mywidget == null)
return new Widget();
else
return _mywidget;
Bis zu:
return _mywidget ?? new Widget();
Ich stelle immer wieder fest, dass ein nützlicher Operator, den ich in C # haben möchte, einer ist, mit dem Sie eine Eigenschaft eines Objekts oder einen anderen Wert zurückgeben können, wenn das Objekt null ist. Also möchte ich ersetzen
if (_mywidget == null)
return 5;
else
return _mywidget.Length;
Mit:
return _mywidget.Length ??! 5;
Ich kann mir nicht helfen zu denken, dass es einen Grund dafür geben muss, dass dieser Operator nicht existiert. Ist es ein Code-Geruch? Gibt es einen besseren Weg, dies zu schreiben? (Ich kenne das Nullobjektmuster, aber es scheint übertrieben, es zu verwenden, um diese vier Codezeilen zu ersetzen.)
??!
ist ein Operator in C ++. :-)