Sự kiện (event) trong C#
Trong bài học này, bạn sẽ khai báo một sự kiện, đăng ký xử lý sự kiện và phát sự kiện khi có thay đổi.
Giới thiệu
Sự kiện (event) cho phép một đối tượng thông báo cho các đối tượng khác khi có điều gì đó xảy ra, theo mô hình người phát và người đăng ký (publisher/subscriber). Đây là cơ chế quen thuộc trong lập trình giao diện, ví dụ khi người dùng nhấn nút.
Class Counter khai báo sự kiện ThresholdReached. Ở Main, toán tử += đăng ký một lambda để xử lý sự kiện. Khi ReachThreshold() được gọi, toán tử ?. chỉ phát sự kiện nếu có ít nhất một người đăng ký. Bên ngoài chỉ có thể đăng ký hoặc hủy đăng ký, còn việc phát sự kiện chỉ class Counter mới làm được.
Ví dụ C# chạy được
using System;
class Counter
{
public event EventHandler? ThresholdReached;
public void ReachThreshold() => ThresholdReached?.Invoke(this, EventArgs.Empty);
}
class Program
{
static void Main()
{
var counter = new Counter();
counter.ThresholdReached += (_, _) => Console.WriteLine("Threshold reached");
counter.ReachThreshold();
}
}
Threshold reachedLuyệ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