1. 程式人生 > 實用技巧 >C#委託簡介

C#委託簡介

【什麼是委託】

允許我們將方法作為引數傳遞到另一個方法中

【形式】

//普通方法
public void GreetingDelegate(string name) 

//委託的形式
public delegate void GreetingDelegate(string name)

//使用委託
private static void GreetPeople(string name, GreetingDelegate MakeGreeting)

【與方法的區別】

1.委託前面有關鍵字delegate

2.委託只能宣告在類外

【解析】

委託本質是一個類,所以具有類的特性,故只能宣告在類外

因此可以例項化

GreetingDelegate delegate1, delegate2;
    delegate1 = EnglishGreeting;
    delegate2 = ChineseGreeting;
    GreetPeople("Liker", delegate1);
    GreetPeople("李志中", delegate2);

注意:沒有new關鍵字

可以使用+=,-=

GreetingDelegate delegate1;
    delegate1 = EnglishGreeting; 
    delegate1 += ChineseGreeting;
    GreetPeople(
"Liker", delegate1); delegate1 -= EnglishGreeting; GreetPeople("李志中", delegate1);

因為可以將多個方法繫結到同一個委託

注意:

第一個等於是賦值,第二個是繫結,不能直接使用+=