Упражнения C#

Обновление неизменяемого заказа с помощью записи в C#

В этом уроке вы с помощью записи и выражения with создадите новую версию заказа, не изменяя исходный.

Введение

Неизменяемые (immutable) данные после создания больше не меняются. Вместо изменения создаётся копия с нужными правками. Это помогает избежать трудноуловимых ошибок, когда один объект используют несколько частей программы.

Выражение pending with { Status = "Shipped" } создаёт новый заказ с тем же Id, но со статусом Shipped. Исходный заказ pending остаётся в статусе Pending, поэтому выводится Pending -> Shipped.

Пример на C#, который можно запустить

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 и посмотрите локальные значения, прежде чем перейти к следующей строке.