Avatar ·

Versteckte C#-Funktionen, über die Lehrbücher schweigen

Hallo zusammen! Ich schreibe seit etwa einem Jahr in C#, habe mehrere Bücher gelesen (Schildt, Troelsen), aber ich habe das Gefühl, dass die Sprache viel tiefer ist, als es scheint. Auf StackOverflow bin ich auf den Thread "Hidden Features of C#" mit 760k Aufrufen gestoßen, aber dort ist alles auf Englisch. Mich interessieren genau die Tricks, die für einen Anfänger nicht offensichtlich sind. Zum Beispiel habe ich kürzlich von `nameof()` erfahren – scheint eine Kleinigkeit, hilft aber beim Refactoring. Oder `??` (null-coalescing) – früher habe ich lange ifs geschrieben. Aber es gibt Dinge, die ich überhaupt nicht verstehe. Zum Beispiel, was ist `yield return`? Ich habe es in Beispielen gesehen, aber ich kann nicht begreifen, wozu es nötig ist, wenn man einfach eine List zurückgeben kann. Außerdem habe ich von "extension methods" gehört – man fügt scheinbar Methoden zu bestehenden Typen hinzu, aber wie funktioniert das intern? Und die größte Frage: Stimmt es, dass es in C# die Möglichkeit gibt, Code zu schreiben, der vor Main() ausgeführt wird? Oder ist das ein Mythos? Bitte teilt die nützlichsten versteckten C#-Tricks, die das Leben wirklich vereinfachen. Mich interessieren sowohl syntaktische Zucker (wie `=>` für