委托与事件的关系

委托与事件的关系数组

  委托与事件的关系,可参照字段跟属性的关系来理解。安全

  属性的一个功能就是设置字段,能够给字段设置权限。字段能够是值类型,也能够是引用类型,固然包括数组在内。那么委托呢?委托是把方法参数化,想要使用方法时直接使用就能够了(有时候要在不一样的地方使用同一个方法,若是把方法的引用交给委托,要使用的时候直接让委托占位(委托去调用这个或这些方法),就方便多了)。工具

  声明一个委托:public deletate void MyDelegate();blog

  能够把委托当作一个容器(名片夹),里面装的是方法的引用(这里咱们能够把方法理解为工具,而引用就至关于工具的一个名片来标识工具的位置),容器里能够装不少的名片夹(能够注册(+=)多个方法给委托),须要使用时,会按照名片的顺序来调用方法(多播委托)。事件

  一个委托类型的变量能够引用一个或多个方法。容器

  

 

    事件的本质就是对委托的封装,约束委托何时执行委托里面的方法(否则委托岂不是没法无天逍遥自在了),事实上事件也是对委托的一种安全保护,委托能够赋值,而事件是须要注册的。再者,事件能够定点定量的执行委托,变量

    委托能够赋值时由于委托自己装的就是方法的引用,引用自己就是一个“值”,裸露的值有可能被更改(若是委托被从新赋值,那么注册的方法的引用就都会被冲掉。+=是注册,而=是所有刷掉再赋新的值给引用),而事件只能注册。后续...........权限

 

图解:引用

 

  《《当作笔记》》方法

相关文章
相关标签/搜索