委托+委托多播性+委托事件
委托 delegate
委托是引用类型,关键字delegate,可以将方法当作另一个方法的参数来进行传递,

自己声明委托:
①无参无返委托
声明委托:
使用声明委托

②有参无返委托
声明委托:

使用声明委托

②有参有返委托

使用声明委托

系统自带委托:
Action: 无返回值,最多可接受16个参,最少0个
Func:有返回值,最多可接受16个参,最少0个 ,算上返回值共17个位置
直接使用封装好的委托:

委托多播性
//声明一个定义好的委托类型的委托(用aciton或func也可以)

使用+=

结果:

使用-=

结果:

委托事件 event
事件是一种特殊的委托,
事件原理
1、就是定义一个私有委托和两个方法(1为委托绑定方法+=、2为委托移出方法-=)
2、微软将其封装成了个语法糖、一个event关键字就搞定了--可通过中间语言查看到
①声明事件

②使用事件

执行结果

委托和委托事件区别
委托可以在类外部实现 事件不可以下类外部实现

委托有多播性但是为什么要用委托事件
--因为委托自身可以被重新赋值的特点,在某些情况下会引发安全问题,所以C#封装了一个事件,如果对事件进行中间语言查看,就可以看到事件其实是由一个私有的委托加一个附加委托和一个移出委托的方法组成,所以可以说事件是一种特殊的委托。
什么安全问题!
委托:


委托事件:
直接在编写代码过程中就报错,表示不能用=只能用+=或-= 所以不会有上面安全问题

----------------------------------
---------------
---------
到这里就结束了哦☺!
有错误的地方可以在下面评论区告诉逐梦哦!
我们一起共同学习共同进步! ( ̄▽ ̄)~*
---------
---------------
----------------------------------
本文来自博客园,作者:じ逐梦,转载请注明原文链接:https://www.cnblogs.com/ZhuMeng-Chao/p/16514492.html

浙公网安备 33010602011771号