Im November 2020 erschien zusammen mit .NET 5 die Version 9 der .NET Lieblingssprache. Wollen Sie zuerst die gute oder die schlechte Nachricht? Na gut, heben wir uns das Beste zum Schluß auf und starten damit: C# 9 kann nicht mehr mit dem klassischen .NET Framework für Windows (letzte Version ist 4.8) verwendet werden. Oh nein!
Aber jetzt die gute Nachricht: die neue Sprachversion bringt tatsächlich so viel nützliches mit, dass viele Entwickler trotzdem begeistert sein werden. Wir haben uns zwei Highlights herausgepickt.
Daten statt Objekte
C# 9 wird wohl als „die Version mit den Records“ in die Geschichte eingehen – so, wie beispielsweise C# 3 durch die Einführung von LINQ in Erinnerung bleibt. Der Begriff „Record“ steht für eine unveränderliche Datenstruktur – im Gegensatz zu einem zustandsbehafteten Objekt (dem Herzstück der objektorientierten Programmierung). Der Ansatz der Unveränderlichkeit kommt aus der funktionalen Programmierung und hat den Vorteil, dass man vor Seiteneffekten sicher ist.
Umgesetzt werden Records in C# als „immutable reference types“, also eigentlich als normale Klassen, die man aber vorzugsweise mit schreibgeschützten Eigenschaften versehen sollte – daher die Unveränderlichkeit. In der Kurzform könnte das so aussehen:
public record Person(string Vorname, string Nachname);
Hierbei sind Vorname und Nachname sogenannte Init-Only Properties (auch etwas, was C# 9 mitbringt). Und wir bekommen automatisch einen Konstruktor mit den entsprechenden Parametern sowie vorgefertigte Gleichheits- und Print-Operationen! Also viel syntaktischer Zucker 🙂
Lose Anweisungen
Bisher begann ich meine C#-Kurse regelmäßig mit den Worten „In C# kann man nicht einfach irgendwelche Befehle in den luftleeren Raum schreiben, sondern man muss alles schön ordentlich in Klassen verpacken“. In Zukunft kann ich darauf verzichten, denn mit den sogenannten Top-Level-Programs“ ist es nun erlaubt, sowohl Program-Klasse als auch Main-Methode einfach wegzulassen. Damit eignet sich C# nun auch sehr gut für die vielen kleinen Anwendungsfälle, in denen man „nur mal schnell ein Skript für irgendwas braucht“.
Fazit
Es scheint, C# wandelt sich von COOL (C-like Object Oriented Language) zu einer Sprache, die es allen recht machen will. Ob man lieber objektorientiert, prozedural oder funktional programmiert – alles ist möglich. Ob das immer gut ist oder doch womöglich hier oder da die Lesbarkeit und Verständlichkeit des Codes darunter leidet, wird sich zeigen. Vermutlich kommt es mehr denn je auf Entwickler-Disziplin und regelmäßige Code Reviews an.
Mehr lernen in SoftEd Trainings
SoftEd Coffee Break (1 h Live Webinar)
Was ist neu bei C# 9? Erhalten Sie einen kompakten Überblick zu den neuen Features. So treffen Sie bessere Entscheidungen! Kostenfrei für SoftEd Kunden. Infos & Anmeldung
Programmieren in C# (MOC 20483)
Starten Sie in die objektorientierte Programmierung mit C# unter dem Microsoft .NET-Framework. 5-Tage-Intensivtraining mit hohem Praxisanteil. Infos & Anmeldung