📚
Lerndokumentationen
.NET
.NET
  • Willkommen
  • C#
    • Variablen
      • Strings
      • Integers
      • Floats und Doubles
      • Booleans
      • Casting und Parsing
    • Kontrollstrukturen
      • if-Statements
      • Ternary-Operator
      • Switch-Statements und -Expressions
    • Collections
      • Arrays
      • Lists
      • Dictionaries
    • Loops
      • while-Loops
      • for-Loops
      • foreach-Loops
      • continue und break
    • Methoden
      • Callbacks und Delegates
      • Extension Methods
      • Lazy
    • Objektorientierte Programmierung
      • Fields und Properties
      • Methoden
      • Statisch vs. Instanzen
      • Konstruktoren
      • Vererbung
      • Komposition
      • Generics
      • Tupel
    • Referenz- und Wertetypen
      • Enums
      • Structs
      • Records
    • Binary und Strings
      • Kodierung von Strings und Bytes
      • Streams
      • XML und JSON
  • Design Patterns
    • Creational Patterns
      • Singleton
    • Structural Patterns
      • Decorator Pattern
    • Behavioral Patterns
      • Memento
      • Strategy
Bereitgestellt von GitBook
Auf dieser Seite
  • with
  • Deconstruction
  1. C#
  2. Referenz- und Wertetypen

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("l.baenninger@icloud.com", "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

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;

Die Records werden nach Reihenfolge dekonstruiert.

VorherigeStructsNächsteBinary und Strings

Zuletzt aktualisiert vor 1 Monat