Jeder kennt mindestens zwei gemeinsame C# Idiome einschließlich coalesce Betreiber:Gemeinsame C# idiome einschließlich coalesce ?? Betreiber
ein Singleton ein:
return _staticField = _staticField ?? new SingletonConstructor();
und eine Kette ein:
notNullableResult = nullable1 ?? nullable2 ?? nullable3 ?? default(someType);
es ist lesbar, konsistente, lohnt sich der Einsatz und erkennbar im Code.
Aber leider ist das alles. Manchmal muss es erweitert oder geändert werden. Manchmal benutze ich sie, wenn ich einen bestimmten Fall sehe - und immer zögere ich, es zu benutzen, weil ich nicht weiß, ob irgendein anderer Programmierer es wirklich leicht lesen wird.
Kennen Sie noch andere? Ich würde gerne spezifischere Verwendungen haben: z.B. Asp.net, EF, LINQ, alles - wo Zusammenwachsen ist nicht nur akzeptabel, sondern auch bemerkenswert.
Es scheint mir, dass alle Verwendungen des Null-Koaleszenz-Operator sind nur Sonderfälle Ihres " Kette eins ". –
immer noch sind alle Fälle mehr oder weniger speziell oder allgemein. Programmieren bedeutet für mich, den Unterschied auszugleichen und zu fühlen. Coalesce ist ein Sonderfall von 'if' Aussage, nicht wahr? und Schalter - Fall ist ein besonderer, also was - um sie zu entfernen? – rudnev
So implementieren Sie kein lazy-instanziiertes Singleton. Auch wenn Sie aus Platzgründen in dieser Frage einfach einen 'lock'-Block weggelassen haben, dient dieser nur dazu, den Code zu verschleiern. – Aaronaught