CityCom-Blog
21.12.2025
Was ist in C# ein Record?
In der modernen Softwareentwicklung ist es entscheidend, Datenstrukturen effizient und klar zu definieren. C# bietet mit der Einführung von Records in Version 9.0 eine elegante Möglichkeit, unveränderliche Datenstrukturen zu erstellen. In diesem Blogbeitrag werden wir uns eingehend mit dem Konzept der Records in C# beschäftigen, ihre Vorteile, Anwendungsfälle und einige praktische Beispiele betrachten.
Einführung in Records
Ein Record in C# ist eine spezielle Art von Referenztyp, der hauptsächlich zur Speicherung von Daten verwendet wird. Sie wurden entwickelt, um die Erstellung von Datenobjekten zu vereinfachen, die hauptsächlich Daten enthalten und weniger Verhalten aufweisen. Records bieten eine einfache Möglichkeit, Datenobjekte zu definieren, die unveränderlich sind, was bedeutet, dass ihre Eigenschaften nach der Erstellung nicht mehr geändert werden können.
Die Syntax von Records
Die Syntax zur Definition eines Records ist einfach und intuitiv. Hier ist ein grundlegendes Beispiel:
public record Person(string FirstName, string LastName);
In diesem Beispiel definieren wir einen Record namens Person mit zwei Eigenschaften: FirstName und LastName. Diese Eigenschaften werden automatisch als öffentliche Eigenschaften erstellt, und der Compiler generiert die notwendigen Methoden für den Vergleich und die Darstellung.
Vorteile von Records
Records bieten mehrere Vorteile, die sie zu einer attraktiven Wahl für die Datenmodellierung machen:
- Unveränderlichkeit: Records sind standardmäßig unveränderlich, was bedeutet, dass ihre Eigenschaften nach der Erstellung nicht mehr geändert werden können. Dies fördert die Sicherheit und Vorhersagbarkeit des Codes.
- Automatische Implementierung von Methoden: Der Compiler generiert automatisch Methoden wie
Equals,GetHashCodeundToString, was die Implementierung von Datenobjekten vereinfacht. - Destrukturierung: Records unterstützen die Destrukturierung, was bedeutet, dass Sie die Eigenschaften eines Records einfach in Variablen extrahieren können.
Beispiel für die Verwendung von Records
Hier ist ein weiteres Beispiel, das zeigt, wie man Records in einer Anwendung verwenden kann:
public record Book(string Title, string Author);
public class Program
{
public static void Main()
{
var book1 = new Book("Der Prozess", "Franz Kafka");
var book2 = book1 with { Title = "Das Schloss" };
Console.WriteLine(book1); // Ausgabe: Book { Title = Der Prozess, Author = Franz Kafka }
Console.WriteLine(book2); // Ausgabe: Book { Title = Das Schloss, Author = Franz Kafka }
}
}
In diesem Beispiel erstellen wir einen Record Book und verwenden die with-Klausel, um eine neue Instanz des Records mit einer modifizierten Eigenschaft zu erstellen. Dies zeigt, wie Records die Erstellung von neuen Objekten auf einfache Weise ermöglichen, ohne die ursprünglichen Objekte zu verändern.
Records vs. Klassen
Ein häufiges Thema in der Diskussion über Records ist der Vergleich mit traditionellen Klassen. Während sowohl Records als auch Klassen Referenztypen sind, gibt es einige wesentliche Unterschiede:
- Unveränderlichkeit: Records sind standardmäßig unveränderlich, während Klassen veränderlich sein können.
- Automatische Methoden: Records generieren automatisch Methoden für den Vergleich und die Darstellung, während Klassen diese manuell implementieren müssen.
- Verwendung: Records sind ideal für Datenübertragungsobjekte (DTOs), während Klassen besser für komplexe Geschäftslogik geeignet sind.
Zusammenfassung
Records in C# bieten eine leistungsstarke und elegante Möglichkeit, Datenstrukturen zu definieren, die unveränderlich sind und automatisch die notwendigen Methoden generieren. Sie sind besonders nützlich in Szenarien, in denen Datenobjekte häufig erstellt und verglichen werden müssen. Mit ihrer einfachen Syntax und den Vorteilen der Unveränderlichkeit sind Records eine wertvolle Ergänzung zur C#-Sprache und fördern die Entwicklung von robustem und wartbarem Code.
Kommentare: (0)
Momentan keine Kommentare vorhanden! Schreiben Sie den Ersten!