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
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}");
}
}
Pending -> Shipped