读书整理-关于.net内置事件的驱动原理浅析

原创 2013年12月05日 09:40:26

佩服下自己读书的速度,看完事件原理这一部分的内容,我比较乱,接着blog来整理下思路,就从反思.net内置事件入手,我们都知道 当点击 键盘操作 鼠标操作等操作都会映射到相应的事件 最普遍的 button click事件 我们就从这里入手 逐步分析 事件的机制 web开发中 button 继承自 web.control 他有一个 内部的事件  public event EventHandler Click

这是.net标准事件 需要两个参数 就是我们常见的 sender 和 e 这个事件有两个重要的描述 一个是 webcategory action 表示这个事件属于 活动分类,另一个 websysdescription button_onclick 是不是很熟悉 没错这就是事件默认的发起事件的方法名 通过反编译 可以看到 这个事件内部 有自己的 add 和removed 方法 来做注册和解除注册操作

add{base.event.addhandler(event.click,value)} removed{base.event.removeHandler(event.click,value)}通过调用 基类的 event属性的add和removed方法来注册和移除 这里的基类是? 回过头来看 button类 public class button:webControl 明白了 base指的是 webcontrol 那我们来看 webcontrol中 event属性的定义 没有? 再看 上面 webcontrol:control 原来还有一层 再看 擦 都没有 找不到event 我们从addHandler 入手 看看这个方法 究竟在哪 回过头看 啊哈原来是 events 好吧 2了 反编译下 看到 这是一个 control中protected 属性 只限本类和子类访问 实例不能访问 看到这个属性是 eventHandlerList 类型 并且是只读的 我们再来看下 eventHandlerList 这是一个类型 属于 system.componentModel 命名空间 实现了 Idisposed 接口 可以通过 using来 智能回收资源 从字面理解就是 事件委托列表 不深究 回到 刚才  我们看 addhandler 的两个参数 写着 eventclick value 看起来让人容易误解 反编译 可以看到 其实 是 object 和 delegate 其中 value 还是一个 eventHandler eventclick 是一个 button 内部的私人的对象型 字段 只能在button类内部访问 并且是只读的

好了整理下思路,button 的click 事件 被 指定为某钟事件处理程序的过程 button 内部有一个 虚方法 onclick 通过判断eventclcik事件来 形成默认的事件处理程序,addHandler 有一套自我判断委托是否合理的逻辑,技术不够不做深究,button有一个静态的构造方法 来初始化 一个object 对象赋给 eventclick object  而eventclick 是只读的

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

驱动层与应用层的事件同步(主动防御原理浅析)

在电脑上,大家都装有各种各样的防护

HTTP协议/IIS 原理及ASP.NET运行机制浅析

本文是转自火龙果 http://www.uml.org.cn/wenzhang/artindex.asp 前言  原文章地址http://www.uml.org.cn/net/2013061...

ASP.NET页面请求原理浅析

原文件链接:http://developer.51cto.com/art/200906/130449.htm

ASP.NET基础与入门:WebForm,事件驱动编程,Page类

注:因为这个暑假做了一个ASP.NET的项目(WebForms模式),暑假期间太忙没有来得及整理,现在统一梳理下知识(有些我认为可以跟HTML共通的就没记)推荐几个学习ASP.NET的网站:W3Sch...
  • Jurbo
  • Jurbo
  • 2016-08-29 15:10
  • 3653

Asp.net 内置对象概述

网上说的内置对象有好多,这里我主要说说Asp.net的七个内置对象的主要功能,七个内置对象分别是:Request、Response、Application、Cookies、Session、Server...

ASP.NET~常用内置对象

在北大青鸟视频中,主要讲述的三个常用对象

asp.net内置对象

asp.net并没有内置对象这一说,jsp里确实把request、response这些当作jsp的内置对象,这里只不过是借用了一下jsp的说法而已。上面提到的很多都是在做asp.net开发时无需new...

利用 ASP.NET 的内置功能抵御 Web 攻击

如果攻击者可以提供有效的身份验证 cookie,黑客就可以进入,请求将被照常处理。服务器上根本不会检查视图状态内容(当 EnableViewStataMac 为 off 时),或者只会检查是否被篡改过...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)