Records
Records sind gut geeignet für Situation wo wir Value Equality benötigen, z.B. für DTOs. Ein Record ist jedoch ein Referenztyp.
public record LoginRequest(
string Email,
string Password);
LoginRequest request = new LoginRequest("[email protected]", "passwort");
Bei einem Record müssen wir also keine Properties definieren. Sie werden automatisch aus dem Konstruktor generiert. Die Properties sind jedoch nur init
-Only.
Ausserdem können wir mit dem Record direkt auf Value Equality prüfen, ohne die Equality()
- und GetHashCode()
-Methode zu überschreiben.
with
with
Mit dem with
-Keyword können wir einen neuen Record aus einem alten erstellen und darin etwas übereschreiben.
LoginRequest updatedRequest = request with { Password = "12345678" };
Deconstruction
Wir können Records in seine Properties dekonstruieren.
var (email, password) = request;
Zuletzt aktualisiert
War das hilfreich?