C# 快速導覽 - delegate 委派

委派是衍生自 .NET 中的 Delegate 類別 (class) ,這把方法 (method) 當作型態 (type) 來運用,使用關鍵字 (keyword) delegate 可設定具名或匿名的方法。



舉例如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
delegate void DemoDelegate(string message);
 
class Demo {
    void DemoDelegateMethod(string message) {
        System.Console.Write(message);
    }
 
    static void Main() {
        Demo d = new Demo();
         
        // 具名方法
        DemoDelegate d1 = d.DemoDelegateMethod;
         
        // 匿名方法
        DemoDelegate d2 = delegate(string message) {
            System.Console.WriteLine(" " + message);
        };
 
        d1("There");
        d2("is no spoon.");
    }
}
 
/* 《程式語言教學誌》的範例程式
    檔名:class29.cs
    功能:示範 C# 程式
    作者:張凱慶
    時間:西元 2013 年 6 月 */


使用委派須先宣告方法的參數列及回傳值型態的方法名稱,注意這必須跟所要指派的方法相同
1
delegate void DemoDelegate(string message);


具名方法就是直接將自訂類別中的方法指派給委派型態的變數
11
12
// 具名方法
DemoDelegate d1 = d.DemoDelegateMethod;


匿名方法使用 delegate 自訂方法內容
14
15
16
17
// 匿名方法
DemoDelegate d2 = delegate(string message) {
    System.Console.WriteLine(" " + message);
};


編譯執行,結果如下



中英文術語對照
類別class
方法method
型態type
關鍵字keyword


您可以繼續參考
類別


相關目錄
回 C# 快速導覽
回 C# 教材
回首頁


參考資料
Standard ECMA-334 C# Language Specification
msdn: delegate (C# 參考)

沒有留言: