Bài tập C#

Cập nhật đơn hàng bất biến với record trong C#

Trong bài học này, bạn sẽ dùng record và biểu thức with để tạo phiên bản mới của đơn hàng mà không làm thay đổi bản gốc.

Giới thiệu

Dữ liệu bất biến (immutable) là dữ liệu không thay đổi sau khi tạo. Thay vì sửa trực tiếp, bạn tạo ra một bản sao có những thay đổi cần thiết. Cách làm này giúp tránh các lỗi khó phát hiện khi nhiều phần của chương trình cùng dùng chung một đối tượng.

Biểu thức pending with { Status = "Shipped" } tạo một đơn hàng mới có cùng Id nhưng trạng thái là Shipped. Đơn hàng pending ban đầu vẫn giữ trạng thái Pending, nên kết quả in ra là Pending -> Shipped.

Ví dụ C# chạy được

C#
Chạy code →
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}");
    }
}
Kết quả khi chạy
Pending -> Shipped

Luyện tập với trình gỡ lỗi

Đặt breakpoint ở một phép gán hoặc điều kiện quan trọng, bấm Debug và xem giá trị các biến cục bộ (local variable) trước khi bước sang dòng tiếp theo.