delegate 委托
委托是一种将方法作为方法的参数进行回调的机制,类似于C++中的函数指针
委托的定义是一系列调用方法的规范
形式:public delegate 返回类型 委托名();
委托的定义与方法的定义类似,但委托是一种类型
代码例子
委托的定义是对被委托调用的一种规范定义,如返回值,参数等,可以看做是一个抽象方法
方法1
委托名 委托对象=new 委托名(被调用的方法)
方法2
委托名 委托对象=被调用的方法
方法3 匿名函数
委托名 委托对象=delegate(参数){具体实现};
方法4 Lambda
委托名 委托对象=((参数)=>{具体实现});
Lambda表达式是匿名函数的特殊情况
方法5
Func<参数类型,返回值类型> 委托对象=((参数)=>{具体实现});
Action<参数类型> 委托对象= ((参数)=>{具体实现});
从Func和Action的定义来看,Func是有返回值的,Action是没有返回值的
event 事件
案例分析:猫叫了一声,老鼠跑了,主人醒了
事件用event关键字,但在使用方面与委托一样,其中+=是订阅,是多播委托
EventHandler也是委托,定义如下:
下面来举例模拟