【什么是委托】
允许我们将方法作为参数传递到另一个方法中
【形式】
//普通方法 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);
因为可以将多个方法绑定到同一个委托
注意:
第一个等于是赋值,第二个是绑定,不能直接使用+=