Các chủ đề C# quan trọng

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

C#
Chạy code →
Program.cs
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();
    }
}
Kết quả khi chạy
Threshold reached

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