Microsoft 05.03.2020, 10:00 Uhr

Lesbaren C#-Code mit lokalen Funktionen schreiben

Lokale Funktionen können dabei helfen CSharp-Code lesbarer zu formulieren.
(Quelle: docs.microsoft.com)
Entwickler Rion Williams sagt: "Wenn die Lesbarkeit nicht das Wichtigste am Code ist, dann ist es verdammt knapp an der Spitze dran." Und zugleich meint er, dass C#-Code oft nicht so gut lesbar ist, wie er sein sollte. In seinem Beitrag auf CodeProject erläutert er das auch anhand eines kleinen Beispiels, welches durchaus noch durchschaubar, zugleich aber verbesserungsfähig ist. Als Lösung des Problems schlägt Rion Williams die seit der Sprachversion 7 in C# enthaltenen lokalen Funktionen vor. Williams betrachtet sich zwar selbst als einen C#-Power-User, räumt aber ein dass er die Funktion nur selten genutzt hat, bis er erkannte, wie sehr sie dabei helfen kann, den Code lesbarer zu machen – insbesondere im Kontext als Ersatz für Kommentare/Hacks, Unit-Tests und ganz allgemein, um Dinge zu bereinigen.
Der C# Programming Guide von Microsoft erklärt die local functions so: Lokale Funktionen sind private Methoden eines Typs, die in einem anderen Mitglied verschachtelt sind. Sie können nur von ihrem enthaltenden Mitglied aus aufgerufen werden. Lokale Funktionen können deklariert und von dort aus aufgerufen werden:
  • Methoden, insbesondere Iterationsmethoden und Async-Methoden,
  • Constructors
  • Property accessors
  • Event accessors
  • Anonyme Methoden
  • Lambda-Ausdrücke
  • Finalisierer
Der erste Anwendungsfälle für lokale Funktionen, den Williams nennt, sind lästige Hygiene- oder Geschäftslogikregeln, insbesondere solche, die sich um die Manipulation von Zeichenketten drehen. Außerdem zeigt er an einem LINQ-Beispiel wie lokale Funktionen helfen können, insbesondere dann wenn irgendeine Art von verrückter Filterlogik über eine Reihe von Datensätzen ausgeführt werden muss. Sie können eine Reihe von lokalen Funktionen definieren, die jeden Schritt Ihres Filterprozesses (oder wirklich jeden Prozess) abdecken und damit die Lesbarkeit des Code verbessern. Sogar für in einzelne Methoden eingebettete lokale Tests empfiehlt Williams lokale Methoden – aber lesen Sie selbst unter https://www.codeproject.com/Articles/5260938/Putting-the-Fun-in-Csharp-Local-Functions.


Das könnte Sie auch interessieren