zoukankan      html  css  js  c++  java
  • 事件 CLR学习第十课 狼


    一、 事件:允许对象登记事件;允许对象注销事件、允许定义事件的对象维持一个登记对象的集合,并

    在某些特定的事件发生时通知这些对象。

    clr的事件是建立在委托(delegate)上的。

    二、事件只能由事件的类型登记或者注销。事件其实是一个静态函数。
    三、事件继承自,Sysetm.EventArgs;命名规则是事件应该以EventArgs结尾。委托应该以EventHandler结

    尾。为的是命名标准。

    四、事件的本质是委托,定义一个事件时,c#编译器会生成1个委托类型的私有字段,一个add_+事件名,

    一个remover_+事件名的 2个public的方法。一个用于注册事件,一个用于注销事件。2个方法都有一个委

    托类型的参数,他们分别掉用delegae的Combine和Remove方法。

    五、用+=来登记事件,-=来注销事件。也可以显示的定义事件的登记和注销方法,优点效率高,不需要加

    载多余的事件,因为有时我们只需要几个事件,但编译器会自动加载上所有的事件需要的委托,导致性能

    降低。缺点实现麻烦。

    六、事件登记集合:是一个实现了hashtale的方法,并用一个索引器,实现事件的登记。CLR中用

    System.ComponmentModel.EventHanhlerList的类型作为事件登记集合。

  • 相关阅读:
    MAIL (mailed 317 bytes of output but got status 0x004b#012)
    centOS7 复制文件夹
    X000100
    第一次博客作业
    《构建之法》阅读第四章、第十七章收获
    2016012017+小学四则运算练习软件项目报告
    看完构建之法1、2、16章的几个问题
    druid 多数据源配置
    flowableUI包
    vue 使用@fullcalendar进行行程展示
  • 原文地址:https://www.cnblogs.com/gowhy/p/2010367.html
Copyright © 2011-2022 走看看