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
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");
}
}
ShippedLuyện tập với trình gỡ lỗi
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