c# 委托和事件

委托
  委托是一种可以承载方法的复杂数据类型
  需要我们自定义

  delegate 返回类型 委托类型名(参数列表)

  委托类型名 委托变量名=new 委托类型名(方法名)

  调用: 委托变量名(); 委托变量名.Invoke(); 

  委托的本质
    就是方法引用的列表,有先后顺序,一旦调用会把列表中所有的方法执行完 

  委托的注册
    委托名+=方法名//就可以将多个方法注册进委托变量中

  委托的注销
    委托名-=方法名//可以将方法从委托列表中移除

    委托变量一旦重新赋值,以前引用的方法全部丢失

    可以使用委托变量=null全部清空方法列表

    如果注册了多种方法在委托变量中则先注册的先执行

  

事件:  

  委托变量如果公开出去,很不安全,外部可以随意调用
  所以取消public,封闭它,我们可以自己书写两个方法,供外部注册与注销,委托调用在
  子方法里调用,这样封装委托变量可以使它更安全,这个就叫做事件

  1.外部不能随便调用,只能注册和注销
  2.只能自己去调用自己的委托

  C#为了方便我们封装委托变量,推出一个特性event事件
  在委托变量前用event修饰这个变量,这个委托变量就变成了事件
  这样的话,这个变量,就算你公开出去也没关系了
  因为,外部只能对这个变量进行注册和注销,只能内部进行触发

 

posted @ 2019-01-23 16:17  D个人笔记  阅读(150)  评论(0编辑  收藏  举报