18 Aug 2020 - Matthias Voigt
Mit der Einführung von C# 9.0 hat Microsoft eine der spannendsten neuen Features der Sprache vorgestellt: Records. Diese neue Art von Datentyp ermöglicht es, unveränderliche Objekte auf einfache und deklarative Weise zu erstellen. In diesem Artikel werden wir einen genaueren Blick auf Records werfen und ihre Vorteile sowie die Anwendung in der Praxis erläutern.
Records sind eine spezielle Art von Referenztypen, die hauptsächlich dazu verwendet werden, unveränderliche Datenobjekte zu modellieren. Im Gegensatz zu Klassen, die mutable sind, sind Records immutable, was bedeutet, dass ihre Eigenschaften nach der Initialisierung nicht mehr geändert werden können. Dies macht sie ideal für die Arbeit mit Datenmodellen und DTOs (Data Transfer Objects).
Hier ist ein einfaches Beispiel, wie ein Record in C# 9.0 definiert wird:
public record Person(string FirstName, string LastName);
Mit dieser einen Zeile Code haben wir einen unveränderlichen Datentyp erstellt, der automatisch Equals
, GetHashCode
, ToString
und das Klonen implementiert.
Equals
, GetHashCode
und ToString
, was die Entwicklungszeit verkürzt.Nehmen wir an, wir haben eine Anwendung, die eine Liste von Personen verwaltet. Mit Records können wir diese Personen einfach und effektiv modellieren:
public record Person(string FirstName, string LastName);
var person1 = new Person("John", "Doe");
var person2 = new Person("Jane", "Doe");
// Verwendung von `with`-Ausdruck zum Erstellen einer Kopie mit geänderten Werten
var person3 = person1 with { FirstName = "Johnny" };
Console.WriteLine(person1); // Ausgabe: Person { FirstName = John, LastName = Doe }
Console.WriteLine(person3); // Ausgabe: Person { FirstName = Johnny, LastName = Doe }
In diesem Beispiel erstellen wir zwei Personen und verwenden den with
-Ausdruck, um eine Kopie von person1
zu erstellen und den Vornamen zu ändern. Dies zeigt die Kraft und Flexibilität von Records.
Records sind eine großartige Ergänzung zu C# 9.0 und bieten Entwicklern eine einfache Möglichkeit, unveränderliche Datenmodelle zu erstellen. Sie verbessern die Codequalität, indem sie Unveränderlichkeit und weniger Boilerplate-Code fördern. Es lohnt sich, diese neuen Features in zukünftigen Projekten zu nutzen und zu erkunden.
Für weitere Details und eine ausführliche Anleitung zu Records besuche die offizielle Microsoft-Dokumentation.