Обновление неизменяемого заказа с помощью записи в C#
В этом уроке вы с помощью записи и выражения with создадите новую версию заказа, не изменяя исходный.
Введение
Неизменяемые (immutable) данные после создания больше не меняются. Вместо изменения создаётся копия с нужными правками. Это помогает избежать трудноуловимых ошибок, когда один объект используют несколько частей программы.
Выражение pending with { Status = "Shipped" } создаёт новый заказ с тем же Id, но со статусом Shipped. Исходный заказ pending остаётся в статусе Pending, поэтому выводится Pending -> Shipped.
Пример на C#, который можно запустить
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 -> ShippedПрактика с отладчиком
Поставьте точку останова на важное присваивание или условие, нажмите Debug и посмотрите локальные значения, прежде чем перейти к следующей строке.