美文网首页
委托和事件

委托和事件

作者: fooliker | 来源:发表于2017-03-24 15:13 被阅读0次

    委托

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

    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修饰 那么就是一个事件

    委托与事件的区别:

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

    事件只能是类成员

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

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

    相关文章

      网友评论

          本文标题:委托和事件

          本文链接:https://www.haomeiwen.com/subject/ymrfottx.html