用一个简单的例子来演绎事件委托

本篇博文,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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java的接口及实例

一、定义Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为&am…

三位数的茎叶图怎么看_贝德玛化妆品生产日期怎么看?贝德玛化妆品保质期怎么看?...

对于喜欢化妆的小伙伴来说,贝德玛这个名字并不陌生。因为在卸妆产品中,有一个爆款单品卸妆水就出自贝德玛旗下,当然这也是贝德玛最知名的产品。不过很多人并不知道,这个来自法国的化妆品品牌,其实属于药妆系列。所以贝…

从Loagistic 到 SVM算法

SVM(支持向量机),一种二类分类器,之所以称之为向量机,是因为它本身就产生一个二值决策结果,即使一种决策“机”,支持向量机的泛化错误低(具有结构风险最小),具…

Scala.js:将Scala编译为JavaScript的编译器

Scala.js是一款将Scala代码编译为JavaScript代码的编译器,该编译器支持全部Scala语言特性。借助于Scala.js,开发者能够使用Scala开发从前端到后端的Web应用,而且Scala.js还带来了在服务器和客户端之间复用代码的可能性。Scala.js值得关注的特…

array

array_shift(使得第一个参数和后面的参数分开,先进先出) vsprintf格式化sql语句 $r substr($sql,0,6)从0个开始截取6位。这种写法在php5.4之前是不支持的 strcasecmp(a,b);如果ab就返回0,如果第一个大于第二个就返回1,否则返回-1 array_push…

c程序

题目&#xff1a;一个数如果恰好等于它的因子之和&#xff0c;这个数就称为“完数”。例如61&#xff0b;2&#xff0b;3.编程找出1000以内的所有完数。1. 程序分析&#xff1a;请参照程序<--上页程序14.2.程序源代码&#xff1a; #include "stdio.h" #include &q…

数据有序_Redis实战(3)-数据结构List实战一之商品信息的有序存储

摘要电商平台的管理后端一般有两大角色的用户可以使用&#xff0c;一个是系统管理员&#xff0c;一个是平台的卖家/商家&#xff0c;对于商家而言&#xff0c;管理自个儿的商品是日常工作中再为普通不过的事情了&#xff0c;本文我们将以"有序存储并展示电商平台中商家上传…

关于asp.net利用mono部署到Linux上的一些说明

linuxdot.net社区群&#xff1a;102732979&#xff08;如果你认为你已经在.NET跨平台方面有足够的经验&#xff0c;请参加这个群&#xff1a;103810355&#xff09;。 其中有各种大神&#xff0c;嘿嘿&#xff0c;如果你有问题可以来咨询&#xff0c;完全无偿的免费的。 mono的…

c单链表

#include <stdio.h>#include <stdlib.h>#define T 1#define F -1typedef int Type;struct Node{Type value;struct Node *next;};int init(struct Node **head); //初始化int insert_head(struct Node *head, Type value); // 头插法int in…

和redis_Redis 缓存

使用场景#Redis 通常用作web应用的内存缓存&#xff0c;和Django&#xff0c;Ruby-on-Rails&#xff0c;Node.js以及Flask框架结合Redis在存储新的数据的过程中可以清除陈旧的数据。Redis使用Less Recently Used(LRU)策略,可以为每个健设置过期时间Redis 存储指标数据用于量化网…

你好,C++(34)有一只叫做多利的羊 6.2.4 拷贝构造函数

6.2.4 拷贝构造函数 在C世界中&#xff0c;除了需要使用构造函数直接创建一个新的对象之外&#xff0c;有时还需要根据已经存在的某个对象创建它的一个副本&#xff0c;就像那只叫做多利的羊一样&#xff0c;我们希望根据一只羊创建出来另外一只一模一样的羊。例如&#xff1a…

invalid floating point operation什么意思_Point-MVSNet:基于多视角的点云重建网络

Point-Based Multi-View Stereo Network是一篇点云重建领域的文章&#xff0c;其工作内容为通过输入多张不同角度的图片&#xff0c;提取不同的点云特征&#xff0c;再进行融合&#xff0c;从而生成最终的点云。1.介绍Point-MVSNet的大致流程如下&#xff1a;首先生成一个粗略的…

在ubuntu 12.04上安装tomcat 7.40

因为源上的版本问题&#xff0c;所以没有使用源上的自动安装包&#xff0c;老规矩&#xff0c;Tomcat 7.0.40 Core下载地址&#xff1a;http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.40/bin /apache-tomcat-7.0.40.tar.gz 放入当前登录用户根目录: ~ 1、依旧是解压 t…

Nonblocking I/O 与 Asynchronous I/O

2019独角兽企业重金招聘Python工程师标准>>> Nonblocking IO 使用的是 polling &#xff08;轮询&#xff09;的方法&#xff08;主动去问&#xff09;&#xff0c; 而 异步IO 使用的是信号机制&#xff08;等待系统通知&#xff09; 转载于:https://my.oschina.ne…

锐浪报表数据源access_kylin+SuperSet实现实时大数据报表的快速开发

最近我的团队将报表计算引擎从阿里的OLAP分析中间价迁移到了kylin上&#xff0c;解决了非常多的问题&#xff0c;将一些我们的解决方案分享出来&#xff0c;希望对读者或者在用kylin的人有所帮助。一、 之前现状和问题之前我们系统的报表都是基于阿里云的相关组件开发的&#x…

结构体定义的三钟方式

#include <stdio.h>#include <string.h>structStudent{ intid; charname[ 20 ]; intage;} s3; //定义方式3&#xff0c;不常用的一种方式intmain(){ structStudent s1; //定义方式1s1.id 0 ; strcpy (s1.name, "Zhang" ); s1.age 20 ; stru…

极大似然估计 摘自维基百科

最大似然估计[编辑] 原文地址&#xff1a; http://zh.wikipedia.org/wiki/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1 最大似然估计&#xff0c;也称为最大概似估计&#xff0c;是一种统计方法&#xff0c;它用来求一个样本集的相关概率密度函数的参数。这个方…

unity改变图片像素大小_类动森像素画反向转换 (xBR)

起因前阵子沉迷动森&#xff0c;DIY 样式的画风真的超萌(&#xff9f;д&#xff9f;)&#xff89;&#xff0c;恰巧在推上看到有个小姐姐在讨论这个像素画转换的算法&#xff0c;就想在 Unity 里整整。最后实现的镜头特效效果如下图。像素缩放算法常见的像素缩放算法对比图如下…

【记忆化搜索】bzoj3208 花神的秒题计划Ⅰ

暴力 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 701 const int dx[]{0,0,-1,1},dy[]{-1,1,0,0}; int n,mem[N][N],a[N][N],m; bool cant[N][N]; int f(int x,int y) {if(mem[x][y]) return mem[x][y];mem[x][…

c语言程序2

题目&#xff1a;有一分数序列&#xff1a;2/1&#xff0c;3/2&#xff0c;5/3&#xff0c;8/5&#xff0c;13/8&#xff0c;21/13...求出这个数列的前20项之和。1.程序分析&#xff1a;请抓住分子与分母的变化规律。2.程序源代码&#xff1a; #include "stdio.h" …