Operator zerowego koalescencji w c # pozwala skrócić kod
if (_mywidget == null)
return new Widget();
else
return _mywidget;
Aż do:
return _mywidget ?? new Widget();
Ciągle odkrywam, że użytecznym operatorem, który chciałbym mieć w języku C #, byłby taki, który pozwoliłby ci zwrócić właściwość obiektu lub inną wartość, jeśli obiekt jest pusty. Więc chciałbym wymienić
if (_mywidget == null)
return 5;
else
return _mywidget.Length;
Z:
return _mywidget.Length ??! 5;
Nie mogę przestać myśleć, że musi istnieć jakiś powód, dla którego ten operator nie istnieje. Czy to zapach kodu? Czy jest jakiś lepszy sposób na napisanie tego? (Zdaję sobie sprawę z wzorca zerowego obiektu, ale wydaje się, że używanie go do zastąpienia tych czterech wierszy kodu jest przesadą).
??!
jest operatorem w C ++. :-)