Actualizar un pedido inmutable con un record en C#
En esta lección vas a usar un record y la expresión with para crear una versión nueva de un pedido sin modificar el original.
Introducción
Los datos inmutables (immutable) ya no cambian una vez creados. En lugar de modificarlos directamente, se crea una copia con los cambios necesarios. Así se evitan errores difíciles de detectar cuando varias partes del programa comparten el mismo objeto.
La expresión pending with { Status = "Shipped" } crea un pedido nuevo con el mismo Id pero con el estado Shipped. El pedido pending original sigue con el estado Pending, por eso el resultado mostrado es Pending -> Shipped.
Ejemplo de C# ejecutable
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}");
}
}
Pending -> ShippedPractica con el depurador
Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.