C#委派的意思

在C#中,委派(Delegate)是一種引用類型,它允許將方法作為參數傳遞給其他方法。委派類似於其他面向對象程式語言中的函式指針或回調函式的概念。

委派的主要特點包括:

  1. 類型安全:委派保證了類型的安全,因為編譯器會檢查方法的簽名是否與委派的要求相匹配。

  2. 事件模型:C#中的事件模型是基於委派的。事件可以看作是特殊的委派,它們提供了一種在對象之間傳送通知的方法。

  3. 多播委派:C#中的委派是多播的,這意味著一個委派可以指向多個方法,當調用委派時,所有指向的方法都會被執行。

  4. 組合功能:委派可以用來組合功能。例如,在一個圖像處理程式中,可以使用委派來組合多個濾鏡效果。

  5. 匿名方法和lambda表達式:委派可以與匿名方法和lambda表達式結合使用,這使得代碼更加簡潔和易於閱讀。

下面是一個簡單的C#委派示例:

using System;

public class Program
{
    public delegate void MyDelegate(string message);

    public static void Main()
    {
        MyDelegate del = new MyDelegate(DisplayMessage);
        del("Hello World!");
    }

    private static void DisplayMessage(string message)
    {
        Console.WriteLine(message);
    }
}

在這個例子中,MyDelegate 是一個自定義的委派類型,它接受一個 string 類型的參數並調用一個無返回值的方法。DisplayMessage 方法是 MyDelegate 委派類型的一個實現。在 Main 方法中,我們創建了一個 MyDelegate 類型的變數 del,並將 DisplayMessage 方法的地址賦值給 del。最後,我們通過調用 del 來執行 DisplayMessage 方法。