委托 delegate
委托就是一种代理的机制,委托代理的是方法,我们只需要给这个委托类型传递一个方法的名称(方法签名),它会根据你传递的方法的名称去调用相应的方法.
就像现实生活中,我需要叫别人代理我去做一些事务,我们需要告诉它替我去做什么.程序中也是如此,我们告诉委托要调用的方法让其调用相应的方法
C#定义委托的语法:
访问修饰符 delegate 返回值委托名(参数) 例如:
public delegate void SayDelegate(String name);
传给委托的方法必须与委托所编写的返回值类型与参数列表匹配,否则编译器将报错.(也就是说你编写委托的时候你为委托所定义的返回值以及参数意味着你能够代理的方法必须与此匹配)
多播委托
我们可以使用+=运算符让委托同时代理多个方法(函数)
//多播委托
SayDelegate sayDel = cp.SayChinese; //第一次赋值
sayDel += cp.SayEnglish; //第二次以后用+=
sayDel += cp.SayJpan;
sayDel -= cp.SayEnglish; //去除绑定-=
匿名函数
定义方式:
delegate()
{
//方法的主体
}
如:
SayHiDelegate shd3 = delegate()
{
Console.WriteLine("Hello!");
};
委托的调用:
委托实例名(参数….);
事件