Art der Veröffentlichung: Online-Publikation
Titel der Veröffentlichung: C# 9.0 bringt prägnante, unveränderbare Typen
Medium: Heise.de
Erscheinungsjahr: 2020
Ausgabe: 14.11.2020 18:11 Uhr
Autor(en): Dr. Holger Schwichtenberg
Verlag: Heise Zeitschriften Verlag, Hannover
Anzahl Seiten: 22000
Link zum Beitrag: Es ist leider (noch) kein öffentlicher Link verfügbar.
Link zum Verlag: http://www.heise.de
Abstrakt: Zusammen mit .NET 5.0 ist auch die Version 9.0 der Programmiersprache C# einsatzbereit. heise Developer stellt die wichtigsten neuen Sprachfeatures vor. Das Highlight schlechthin in C# sind Records, mit denen man auf prägnante Weise Klassen mit Wertesemantik definieren kann. Die folgende Programmcodezeile, die aussieht wie ein Konstruktor mit vorangestelltem Schlüsselwort record, deklariert eine Klasse Person mit drei Properties ID, Vorname, Name und Status (Letzteres mit Standardwert): public record Person(int ID, string Vorname, string Name, string Status = "unbekannt"); Diese Record-Klasse kann man nun wie eine normale Klasse instanziieren: Person hs = new Person(123, "Holger", "Schwichtenberg"); und die dort enthaltenen Daten über die automatisch erzeugten Properties verwenden: Console.WriteLine($"Person #{hs.ID}: {hs.Vorname} {hs.Name}"); Einen Unterschied zu einer normalen Klasse merkt man aber sofort, wenn man versucht, einen Property-Wert zu ändern. Diese Zuweisung nach der Instanziierung hs.Vorname = "Dr. Holger"; erlaubt der Compiler nicht mehr und quittiert das mit dem Fehler "Error CS8852 Init - only property or indexer 'Person.Vorname' can only be assigned in an object initializer, or on 'this' or 'base' in an instance constructor or an 'init' accessor". Die Instanzen einer so definierten Record-Klasse sind unveränderlich (immutable) nach der Instanzierung. Das neue Schlüsselwort record ist viel syntaktischer Zucker. Mit einem Decompiler wie dem kostenfreien ILSpy entlarvt man, dass in Wirklichkeit mehr als eine DIN-A4-Seite Programmcode entstanden ist.
Verweise: .NET 5.0
CSharp 9.0

Downloads zu dieser Veröffentlichung

Leider keine Dateien vorhanden.

Verlagslogos Zeitschriftenstapel