Delegate là một tính năng mạnh mẽ trong C# giúp bạn viết mã linh hoạt, hiệu quả và dễ bảo trì hơn. Nó cho phép bạn encapsulate các method (phương thức) vào một đối tượng delegate, giúp bạn có thể truyền method như một tham số cho các method khác hoặc sử dụng nó để đăng ký sự kiện.

Để sử dụng delegate, bạn cần thực hiện các bước theo hướng dẫn dưới đây.

1. Khai báo delegate

Bạn cần khai báo một delegate bằng cách sử dụng từ khóa delegate sau đó là kiểu trả về của method, tên delegate và danh sách tham số. Ví dụ:

delegate void MyDelegate(string message);

2. Tạo instance delegate

Bạn có thể tạo instance delegate bằng cách sử dụng từ khóa new sau tên delegate và tham chiếu đến method muốn encapsulate. Ví dụ:

MyDelegate myDelegate = new MyDelegate(DisplayMessage);

>>> Xem thêm bài viết:

Hướng dẫn cài đặt unix linux 

Hướng dẫn cài đặt k8s Kubenertes Cluster

Scheduling - Lập lịch trên K8s

3. Gọi delegate

Bạn có thể gọi delegate giống như gọi một method bình thường. Ví dụ

myDelegate("Hello, world!");

Ví dụ sử dụng Delegate

Dưới đây là một ví dụ đơn giản về cách sử dụng delegate để đăng ký sự kiện:

class Button {
    public delegate void ClickHandler();
    public event ClickHandler Clicked;

    public void DoClick() {
        if (Clicked != null) {
            Clicked();
        }
    }
}

class Program {
    static void DisplayMessage() {
        Console.WriteLine("Button clicked!");
    }

    static void Main(string[] args) {
        Button button = new Button();
        button.Clicked += DisplayMessage;

        button.DoClick();
    }
}

Trong ví dụ này, Button class có một delegate ClickHandler được sử dụng để đăng ký sự kiện click. Khi button được click, method DoClick sẽ được gọi, và nó sẽ kích hoạt delegate Clicked, gọi method DisplayMessage để hiển thị thông báo "Button clicked!".

4. Lợi ích của Delegate

Sử dụng delegate mang lại nhiều lợi ích, bao gồm:

  • Tăng tính linh hoạt: Delegate cho phép bạn truyền method như một tham số, giúp bạn có thể viết mã linh hoạt hơn và dễ dàng tái sử dụng.
  • Giảm thiểu coupling: Delegate giúp giảm thiểu coupling (sự phụ thuộc) giữa các class, giúp bạn viết mã dễ bảo trì hơn.
  • Hỗ trợ lập trình hướng sự kiện: Delegate là nền tảng cho lập trình hướng sự kiện trong C#, giúp bạn viết mã phản ứng với các sự kiện một cách hiệu quả.

Kết bài

Delegate là một tính năng mạnh mẽ trong C# giúp bạn viết mã linh hoạt, hiệu quả và dễ bảo trì hơn. Hiểu rõ cách sử dụng delegate là điều cần thiết cho bất kỳ lập trình viên C# nào muốn viết mã chất lượng cao.


Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.

Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy,  Adavigo, bTaskee…

Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: