本篇博文,Insus.NET想使用一个超简单的例子来演绎事件委托。

我们在开发网页时,刚开始时在网页的顶部放一个铵钮(web control),想实现一个功能。

在xxx.aspx.cs:

OK,某一天,此网页的内容随时间而增长,出现了滚屏。想在网页的底再放一个铵钮,这个铵钮执行事件跟网页顶部铵钮一的事件一样的。

这样子,不管是点击按哪一个铵钮,所执行的事件是一样的:

也许一开始你并没有想到onClick的事件名,直接使用铵钮一的onClick的名称,而是如下面的写法:

在xxx.aspx.cs,我们会使用习惯的习惯,拷贝铵钮一的事件粘贴在铵钮二的事件里:

呵呵,此时网页在运行时,点击按钮二与点击铵钮一执行的是相同的事情。

某一天,你回过头来Review你写的代码,会发现代码已经冗余了,你会建一个私有方法,把铵钮一或二的事件代码粘贴于这个方法内,然后在铵钮一或二执行这个方法即可。

上面好象没有看到任何事件委托情形。没有关系,我们稍改一下xxx.aspx写法吧,在网页中,不写onClick事件,而是在cs中产生:

然后在xxx.aspx.cs:

此时,网页运行起来,没有什么不同。执行事件与效果跟前面动画演示一样。

我们再重新看看这个xxx.aspx.cs的代码:

发现:

protected void Button1_Click(object sender, EventArgs e)

protected void Button2_Click(object sender, EventArgs e)

所执行的代码完全一样,只是这个事件名称不同。

既然一样,我们就可以跟上面重构方法一样,定义一个相同的名称,参照下面五个步骤:

最后再重构一步:

把xxx.aspx.cs所有注释删除,此时,我们看到了事件的委托:

转载于:https://www.cnblogs.com/insus/p/3732075.html

用一个简单的例子来演绎事件委托相关推荐

  1. React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起

    React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson2 ...

  2. .net中的对象序列化(1): 序列化是什么, 以及一个简单的例子

    1. 为什么需要序列化,什么是序列化 对于一个程序来说, 使用到的对象都是存在于内存中的.如果想保存这些对象的运行时状态, 或者需要在不同进程或者网络间传递对象,就需要序列化. 序列化就是讲运行中的对 ...

  3. 一个简单的例子看java线程机制

    一个简单的例子看java线程机制 作者: zyf0808 发表日期: 2006-03-26 11:20 文章属性: 原创 复制链接 import java.util.*; public class T ...

  4. blockchain 区块链200行代码:在JavaScript实现的一个简单的例子

    blockchain 区块链200行代码:在JavaScript实现的一个简单的例子 了解blockchain的概念很简单(区块链,交易链块):它是分布式的(即不是放置在同一台机器上,不同的网络设备上 ...

  5. pycharm安装scrapy失败_Scrapy ——环境搭配与一个简单的例子

    在我刚接触爬虫的时候就已经听过Scrapy大名了,据说是一个很厉害的爬虫框架,不过那个时候沉迷于Java爬虫.现在终于要来揭开它神秘的面纱了,来一起学习一下吧 欢迎关注公众号:老白和他的爬虫 1.环境 ...

  6. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

  7. 类模板与运算符重载(一个简单的例子)

    类模板与运算符重载(一个简单的例子) 标签(空格分隔): C++ 算法竞赛 下面是一段简单的代码,表示我们建立了一个类模板Vector,可以看做是对STL中vector的简单实现. 为了让这个Vect ...

  8. 一个简单的例子,学习自定义注解和AOP

    转载自   一个简单的例子,学习自定义注解和AOP 记得今年年初刚开始面试的时候,被问的最多的就是你知道Spring的两大核心嘛?那你说说什么是AOP,什么是IOC?我相信你可能也被问了很多次了. 1 ...

  9. antlr4例子_ANTLR和网络:一个简单的例子

    antlr4例子 网络上的ANTLR:为什么? 我开始在MS-DOS上编写我的第一个程序. 因此,我非常习惯在自己的机器上安装工具. 但是在2016年,网络无处不在,因此那里也可能需要我们的语言. 可 ...

最新文章

  1. 既是移动硬盘也是微型计算机,既是移动硬盘也是微型计算机 Gnarbox 2.0 SSD让你随时随地备份自己的照片...
  2. echarts grid的样式位置_ECharts grid组件配置 提示框浮层的位置
  3. BZOJ 1920 Luogu P4217 [CTSC2010]产品销售 (模拟费用流、线段树)
  4. Android程序员重头学Synchronized
  5. 各种边缘检测算子特点比较(canny)
  6. 《数字信号处理》——(一).DTFT、DFT(python实现)
  7. java中map是不是有序_Map中有序存储
  8. 罗振宇跨年演讲全文、PPT、图解
  9. 电感耦合等离子体发射光谱法测定水样中的金属含量
  10. 线性代数 | (3) 行列式
  11. 服务器端获取数据(一)
  12. 拉勾课程--性能优化记录
  13. 用了这么多年iPhone,你知道包装盒里为何会有两张贴纸?看完涨知识
  14. Hive SQL— 连续发单天数
  15. Code 39码与Code 128码区别
  16. wordpress网站文章内容页模板主题开发制作教程
  17. android代码实现手机加速功能吗,详解Android开发中硬件加速支持的使用方法
  18. Bootstrap实战---电池充电特效编写(d-flex+JS)
  19. python零基础入门教程视频下载-零基础学Python入门教程,视频资源下载
  20. ca安全证书字段_CA数字证书常见问题解答

热门文章

  1. php错误403_phpstudy访问文件报错403/Forbidden解决办法
  2. c99什么意思_C语言中-是什么意思啊?
  3. 怎样在数组末尾添加数据_如何利用C++实现可变长的数组?
  4. C++std命名空间和头文件详解
  5. leetcode266. 回文排列
  6. leetcode55 跳跃游戏 秒杀所有答案
  7. 图的遍历算法【数据结构F】
  8. 算法(6)-leetcode-explore-learn-数据结构-数组字符串的双指针技巧
  9. 《Java8实战》笔记(05):使用流
  10. java五子棋源代码_java 五子棋游戏源码