Mettre à jour une commande immuable avec un record en C#
Dans cette leçon, vous allez utiliser un record et l'expression with pour créer une nouvelle version d'une commande sans modifier l'originale.
Introduction
Des données immuables (immutable) ne changent plus une fois créées. Au lieu de les modifier directement, on crée une copie avec les changements nécessaires. Cela évite des erreurs difficiles à repérer quand plusieurs parties du programme partagent le même objet.
L'expression pending with { Status = "Shipped" } crée une nouvelle commande avec le même Id mais l'état Shipped. La commande pending d'origine garde l'état Pending, c'est pourquoi le résultat affiché est Pending -> Shipped.
Exemple C# exécutable
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