委托和事件

来源:互联网 发布:淘宝收货时间 编辑:程序博客网 时间:2024/06/11 20:58

委托

委托是一个类,它定义了方法的类型,使得方法可以当做另一种方法的参数传递,就是方法的参数是一个委托变量,在调用此方法时,就可以把一个方法作为参数传递给委托变量。

1.创建委托访问修饰符 delegate 返回值类型 委托名(参数列表); 没有大括号

2.委托赋值 委托名 委托变量 = 方法名; 没有大小括号这个方法的参数和返回值类型 必须要和委托类型一致。

3.使用委托委托变量(参数列表);静态方法和普通方法都可以绑定

4.多播委托给委托绑定多个方法(方法类型必须一致)  使用 += 解除使用  -=委托名 委托变量 = 方法1;委托变量 += 方法2;使用多播委托绑定无返回值的方法时,会把绑定的方法都执行一次。使用多播委托绑定有返回值的方法是,也会将方法都执行一次,但是会覆盖第一个方法执行的结果,返回最后绑定方法的结果。

5.内置委托Action无返回值的委托 表示委托类型的参数类型是 T,T1....Func有返回值的委托 表示委托类型的参数类型是 T,T1,T2... 返回值类型是P

6.ref out 关键字

这些不能用在内置委托中,必须放在自定义的一般委托中

7.匿名方法

委托类型 委托变量 = delegate(参数列表){方法体;有返回值要return;};

后面一定要加分号,因为这是一个赋值语句

8.Lambda表达式

委托类型 委托变量 = (参数列表)=> {方法体;有返回值要return;};

后面一定要加分号,因为这是一个赋值语句

事件

在创建委托变量的时候用event修饰 那么就是一个事件

委托与事件的区别:

委托可以声明为类成员 也可以是局部变量

事件只能是类成员

事件在类的外部访问时只能出现在 += 注册 或者 - =注销的左边 不能像使用委托那样直接执行

事件必须在所在的类里面才可以执行

原创粉丝点击