Explicit Event add/remove in C#

DevNotes
0
Add/Remove là từ khoá trong C# giúp triển khai thêm và xoá sự kiện, mục đích của việc này giúp bạn truy cập được lúc EventHandler thêm và xoá sự kiện thông qua hai hàm add và remove. Ví dụ dưới dây là một chương trình có chức năng thông báo mỗi khi sự kiện thêm hoặc xoá.

using System;

class Program
{
    private EventHandler _myEventHandlers;

    // Định nghĩa sự kiện dựa trên delegate EventHandler
    public event EventHandler MyEvent
    {
        add
        {
            Console.WriteLine("Adding an event handler");
            _myEventHandlers += value;
        }
        remove
        {
            Console.WriteLine("Removing an event handler");
            _myEventHandlers -= value;
        }
    }

    // Phương thức để kích hoạt sự kiện
    public void RaiseEvent()
    {
        _myEventHandlers?.Invoke(this, EventArgs.Empty);
    }

    static void Main(string[] args)
    {
        Program program = new Program();

        // Thêm sự kiện vào đối tượng
        program.MyEvent += DisplayMessage;

        // Gọi phương thức để kích hoạt sự kiện
        program.RaiseEvent();

        // Loại bỏ sự kiện khỏi đối tượng
        program.MyEvent -= DisplayMessage;

        // Gọi phương thức để kích hoạt sự kiện (sẽ không có phản ứng)
        program.RaiseEvent();
        Console.ReadKey();
    }

    // Phương thức xử lý sự kiện
    static void DisplayMessage(object sender, EventArgs e)
    {
        Console.WriteLine("Event received: " + sender);
    }
}

Post a Comment

0 Comments
Post a Comment (0)
To Top