用一个简单的例子来演绎事件委托
本篇博文,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
用一个简单的例子来演绎事件委托相关推荐
- React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起
React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson2 ...
- .net中的对象序列化(1): 序列化是什么, 以及一个简单的例子
1. 为什么需要序列化,什么是序列化 对于一个程序来说, 使用到的对象都是存在于内存中的.如果想保存这些对象的运行时状态, 或者需要在不同进程或者网络间传递对象,就需要序列化. 序列化就是讲运行中的对 ...
- 一个简单的例子看java线程机制
一个简单的例子看java线程机制 作者: zyf0808 发表日期: 2006-03-26 11:20 文章属性: 原创 复制链接 import java.util.*; public class T ...
- blockchain 区块链200行代码:在JavaScript实现的一个简单的例子
blockchain 区块链200行代码:在JavaScript实现的一个简单的例子 了解blockchain的概念很简单(区块链,交易链块):它是分布式的(即不是放置在同一台机器上,不同的网络设备上 ...
- pycharm安装scrapy失败_Scrapy ——环境搭配与一个简单的例子
在我刚接触爬虫的时候就已经听过Scrapy大名了,据说是一个很厉害的爬虫框架,不过那个时候沉迷于Java爬虫.现在终于要来揭开它神秘的面纱了,来一起学习一下吧 欢迎关注公众号:老白和他的爬虫 1.环境 ...
- java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...
一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...
- 类模板与运算符重载(一个简单的例子)
类模板与运算符重载(一个简单的例子) 标签(空格分隔): C++ 算法竞赛 下面是一段简单的代码,表示我们建立了一个类模板Vector,可以看做是对STL中vector的简单实现. 为了让这个Vect ...
- 一个简单的例子,学习自定义注解和AOP
转载自 一个简单的例子,学习自定义注解和AOP 记得今年年初刚开始面试的时候,被问的最多的就是你知道Spring的两大核心嘛?那你说说什么是AOP,什么是IOC?我相信你可能也被问了很多次了. 1 ...
- antlr4例子_ANTLR和网络:一个简单的例子
antlr4例子 网络上的ANTLR:为什么? 我开始在MS-DOS上编写我的第一个程序. 因此,我非常习惯在自己的机器上安装工具. 但是在2016年,网络无处不在,因此那里也可能需要我们的语言. 可 ...
最新文章
- 既是移动硬盘也是微型计算机,既是移动硬盘也是微型计算机 Gnarbox 2.0 SSD让你随时随地备份自己的照片...
- echarts grid的样式位置_ECharts grid组件配置 提示框浮层的位置
- BZOJ 1920 Luogu P4217 [CTSC2010]产品销售 (模拟费用流、线段树)
- Android程序员重头学Synchronized
- 各种边缘检测算子特点比较(canny)
- 《数字信号处理》——(一).DTFT、DFT(python实现)
- java中map是不是有序_Map中有序存储
- 罗振宇跨年演讲全文、PPT、图解
- 电感耦合等离子体发射光谱法测定水样中的金属含量
- 线性代数 | (3) 行列式
- 服务器端获取数据(一)
- 拉勾课程--性能优化记录
- 用了这么多年iPhone,你知道包装盒里为何会有两张贴纸?看完涨知识
- Hive SQL— 连续发单天数
- Code 39码与Code 128码区别
- wordpress网站文章内容页模板主题开发制作教程
- android代码实现手机加速功能吗,详解Android开发中硬件加速支持的使用方法
- Bootstrap实战---电池充电特效编写(d-flex+JS)
- python零基础入门教程视频下载-零基础学Python入门教程,视频资源下载
- ca安全证书字段_CA数字证书常见问题解答
热门文章
- php错误403_phpstudy访问文件报错403/Forbidden解决办法
- c99什么意思_C语言中-是什么意思啊?
- 怎样在数组末尾添加数据_如何利用C++实现可变长的数组?
- C++std命名空间和头文件详解
- leetcode266. 回文排列
- leetcode55 跳跃游戏 秒杀所有答案
- 图的遍历算法【数据结构F】
- 算法(6)-leetcode-explore-learn-数据结构-数组字符串的双指针技巧
- 《Java8实战》笔记(05):使用流
- java五子棋源代码_java 五子棋游戏源码