委托是什么
委托是一种类型,事件是 委托类型的实例
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性
委托的意义是:解耦
委托三部曲:声明 实例化 调用。
//声明
1. public delegate void Entrust1(string name);//声明委托(没有返回值,有参数)
2. public delegate string Entrust2(string name);//声明委托(有返回值,有参数)
//实例化
1. Entrust1 et1=new Entrust1(show1);
public static void show1(string name){
Console.WriteLine("你好,{0}",name);
}
2.
Entrust2 et2=new Entrust2(show2);
public string show2(string name){
return "你好,"+name;
}
//调用
et1.Invoke("XL");
et2.Invoke("XL");
把方法当做参数,传值
1
2
还可以把绑定多个方法(多播委托)
3
4
5