Każdy zna przynajmniej dwa wspólne C# idiomów tym operatora zlewają:Typowe idiomy C#, w tym koalesce? Operator
Singleton jeden:
return _staticField = _staticField ?? new SingletonConstructor();
i jeden łańcuch:
notNullableResult = nullable1 ?? nullable2 ?? nullable3 ?? default(someType);
to czytelne, spójne, warto skorzystać i rozpoznawalny w kodzie.
Ale, niestety, to wszystko. Czasami będzie wymagać rozszerzenia lub zmiany. Czasami używam ich, gdy widzę konkretny przypadek - i zawsze waham się go używać, ponieważ nie wiem, czy którykolwiek z programistów naprawdę to przeczyta.
Czy znasz jakieś inne? Chciałbym mieć więcej konkretnych zastosowań: np. Asp.net, EF, LINQ, cokolwiek - gdzie koalescencja jest nie tylko akceptowalna, ale godna uwagi.
Wydaje mi się, że wszystkie zastosowania zerowej operatora koalescencyjnego to tylko szczególne przypadki z twoich " jeden łańcuch ". –
nadal wszystkie sprawy są mniej lub bardziej wyjątkowe lub ogólne. dla mnie sztuka programowania polega na równoważeniu i odczuwaniu różnicy. coalesce jest szczególnym przypadkiem stwierdzenia "jeśli", czyż nie? i przełącznik - sprawa jest wyjątkowa, więc co - aby je usunąć? – rudnev
To nie jest sposób implementacji leniwie tworzonego singletonu. Nawet jeśli po prostu pominąłeś blokadę "blokady" w celu zwięzłości w tym pytaniu, to tylko służy to zaciemnianiu kodu. – Aaronaught