C#-Übungen

Unveränderliche Bestellungen mit Records aktualisieren in C#

In dieser Lektion erzeugst du mit Records und dem Ausdruck with eine neue Version einer Bestellung, ohne das Original zu ändern.

Einführung

Unveränderliche (immutable) Daten ändern sich nach dem Erzeugen nicht mehr. Statt sie direkt zu ändern, erzeugst du eine Kopie mit den nötigen Änderungen. So vermeidest du schwer auffindbare Fehler, wenn mehrere Teile des Programms dasselbe Objekt verwenden.

Der Ausdruck pending with { Status = "Shipped" } erzeugt eine neue Bestellung mit derselben Id, aber dem Status Shipped. Die ursprüngliche Bestellung pending behält den Status Pending, deshalb lautet die Ausgabe Pending -> Shipped.

Ausführbares C#-Beispiel

C#
Code ausführen →
Program.cs
using System;
record Order(int Id, string Status);
class Program
{
    static void Main()
    {
        var pending = new Order(7, "Pending");
        var shipped = pending with { Status = "Shipped" };
        Console.WriteLine($"{pending.Status} -> {shipped.Status}");
    }
}
Ergebnis der Ausführung
Pending -> Shipped

Mit dem Debugger üben

Setze einen Haltepunkt auf eine wichtige Zuweisung oder Bedingung, klicke auf Debug und sieh dir die lokalen Werte an, bevor du zur nächsten Zeile gehst.