C#委託簡介
阿新 • • 發佈:2020-09-02
【什麼是委託】
允許我們將方法作為引數傳遞到另一個方法中
【形式】
//普通方法 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);
因為可以將多個方法繫結到同一個委託
注意:
第一個等於是賦值,第二個是繫結,不能直接使用+=