Bài tập C#

Mô hình người phát và người đăng ký sự kiện trong C#

Trong bài học này, bạn sẽ thông báo cho các đối tượng đã đăng ký mỗi khi trạng thái của đơn hàng thay đổi bằng sự kiện.

Giới thiệu

Sự kiện cho phép bên ngoài đăng ký nhận thông báo, nhưng chỉ class sở hữu sự kiện mới có quyền phát thông báo đó. Đây là cách triển khai mô hình người phát và người đăng ký một cách an toàn trong C#.

Class Order khai báo sự kiện StatusChanged với kiểu EventHandler<string>, nghĩa là kèm theo một chuỗi mô tả trạng thái mới. Ở Main, một lambda đăng ký để in trạng thái ra màn hình. Khi Update("Shipped") được gọi, toán tử ?. chỉ phát sự kiện nếu có người đăng ký, nên chương trình in ra Shipped.

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

C#
Chạy code →
Program.cs
using System;
class Order
{
    public event EventHandler<string>? StatusChanged;
    public void Update(string status) => StatusChanged?.Invoke(this, status);
}
class Program
{
    static void Main()
    {
        var order = new Order();
        order.StatusChanged += (_, status) => Console.WriteLine(status);
        order.Update("Shipped");
    }
}
Kết quả khi chạy
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.

Luyện tập với thử thách

Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.

Tất cả thử thách