C#三步实现标准事件处理程序

1 publicclass BookBomb
2 {
3 ///<summary>
4 /// 定义委托
5 ///</summary>
6 publicdelegatevoid BookBombs();
7 ///<summary>
8 /// 定义事件
9 ///</summary>
10 publicevent BookBombs Book;
11 publicevent BookBombs Booking;
12 publicevent BookBombs Booked;
13
14 ///<summary>
15 /// 预定
16 ///</summary>
17 publicvoid OnBook()
18 {
19 if (Book !=null)
20 {
21 Book();
22 }
23 }
24 ///<summary>
25 /// 正在处理
26 ///</summary>
27 publicvoid OnBooking()
28 {
29 if (Booking !=null)
30 {
31 Booking();
32 }
33 }
34 ///<summary>
35 /// 装配完毕
36 ///</summary>
37 publicvoid OnBooked()
38 {
39 if (Booked !=null)
40 {
41 Booked();
42 }
43 }
44 }
45 }

1 //声明
2 BookBomb _bookBomb =null;
3 _bookBomb =new BookBomb();
4 //分别注册三个事件
5 _bookBomb.Book +=new BookBomb.BookBombs(_bookBomb_Book);
6 _bookBomb.Booking +=new BookBomb.BookBombs(_bookBomb_Booking);
7 _bookBomb.Booked +=new BookBomb.BookBombs(_bookBomb_Booked);
8 void _bookBomb_Booked()
9 {
10 txtMsg.AppendText("装配完毕 型号:NB-250 数量:10 \r\n\r\n");
11 }
12
13 void _bookBomb_Booking()
14 {
15 txtMsg.AppendText("正在装配 型号:NB-250 数量:10 \r\n");
16 }
17
18 void _bookBomb_Book()
19 {
20 txtMsg.AppendText("预定炸弹 型号:NB-250 数量:10 \r\n");
21 }
22 //模拟订单处理流程的有三次调用
23 _bookBomb.OnBook();
24 _bookBomb.OnBooking();
25 _bookBomb.OnBooked();
1 ///<summary>
2 /// 事件参数
3 ///</summary>
4 publicclass SimpleBookEventArgs : EventArgs
5 {
6 privateint _count =0;
7 publicint Count
8 {
9 get { return _count; }
10 set { _count = value; }
11 }
12
13 privatestring _model;
14 publicstring Name
15 {
16 get { return _model; }
17 set { _model = value; }
18 }
19 }
20
21 publicclass SimpleBookBomb
22 {
23 publicdelegatevoid SimpleBookEventHandler(SimpleBookEventArgs e);
24 publicevent SimpleBookEventHandler SimpleBookEvent;
25 publicevent SimpleBookEventHandler SimpleBookingEvent;
26 publicevent SimpleBookEventHandler SimpleBookedEvent;
27 ///<summary>
28 /// 预定
29 ///</summary>
30 ///<param name="e"></param>
31 publicvoid OnSimpleBook(SimpleBookEventArgs e)
32 {
33 if (SimpleBookEvent !=null)
34 {
35 this.SimpleBookEvent(e);
36 }
37 }
38 ///<summary>
39 /// 正在处理
40 ///</summary>
41 publicvoid OnSimpleBooking(SimpleBookEventArgs e)
42 {
43 if (SimpleBookingEvent !=null)
44 {
45 this.SimpleBookingEvent(e);
46 }
47 }
48 ///<summary>
49 /// 装配完毕
50 ///</summary>
51 publicvoid OnSimpleBooked(SimpleBookEventArgs e)
52 {
53 if (SimpleBookedEvent !=null)
54 {
55 this.SimpleBookedEvent(e);
56 }
57 }
58 }
1 ///<summary>
2 /// 事件参数
3 ///</summary>
4 publicclass StandardBookEventArgs : EventArgs
5 {
6 privateint _count =0;
7 publicint Count
8 {
9 get { return _count; }
10 set { _count = value; }
11 }
12
13 privatestring _name;
14 publicstring Name
15 {
16 get { return _name; }
17 set { _name = value; }
18 }
19 }
20
21 publicclass StandardBookBomb
22 {
23 publicdelegatevoid StandardBookEventHandler(object sender, StandardBookEventArgs e);
24 publicevent StandardBookEventHandler StandardBookEvent;
25 publicevent StandardBookEventHandler StandardBookingEvent;
26 publicevent StandardBookEventHandler StandardBookedEvent;
27 ///<summary>
28 /// 预定
29 ///</summary>
30 publicvoid OnStandardBook(object sender, StandardBookEventArgs e)
31 {
32 if (StandardBookEvent !=null)
33 {
34 this.StandardBookEvent(sender, e);
35 }
36 }
37 ///<summary>
38 /// 正在处理
39 ///</summary>
40 publicvoid OnStandardBooking(object sender, StandardBookEventArgs e)
41 {
42 if (StandardBookingEvent !=null)
43 {
44 this.StandardBookingEvent(sender, e);
45 }
46 }
47 ///<summary>
48 /// 装配完毕
49 ///</summary>
50 publicvoid OnStandardBooked(object sender, StandardBookEventArgs e)
51 {
52 if (StandardBookedEvent !=null)
53 {
54 this.StandardBookedEvent(sender, e);
55 }
56 }
57 }
点击下载源码
C#三步实现标准事件处理程序的更多相关文章
- javascript事件处理程序的3个阶段
第一阶段:HTML事件处理阶段.就是在元素里面添加onclick之类的属性来调用某个函数. <input type="button" value="单击" ...
- [转]javascript指定事件处理程序包括三种方式:
javascript指定事件处理程序包括三种方式: (1):DOM0级事件处理程序 如: 代码如下: var btn=document.getElementById("mybtn" ...
- javaScript事件(二)事件处理程序
一.事件 二.事件流 以上内容见:javaScript事件(一)事件流 三.事件处理程序 前面提到,事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字.响应 ...
- 探究JavaScript中的五种事件处理程序
探究JavaScript中的五种事件处理程序 我们知道JavaScript与HTML之间的交互是通过事件实现的.事件最早是在IE3和Netscape Navigator 2中出现的,当时是作为分担服务 ...
- 注册事件处理程序onclick和addEventListener、attachEvent
一.设置HTML标签属性为事件处理程序(注意和下面的设置javascript对象属性为事件处理程序是不同的) 用于设置文档元素事件处理程序属性也能化成对应的HTML标签的属性.如果这样做,属性值应该是 ...
- JavaScript 事件 事件流 事件对象 事件处理程序 回调函数 error和try...catch和throw
参考资料: 慕课网 DOM事件探秘 js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个时间,该时间会驱动某些函数 ...
- 《JAVASCRIPT高级程序设计》事件处理程序和事件类型
一.事件流 谈到事件,首要要理解事件流的概念:事件流是指从页面接受事件的顺序:“DOM2级事件”规定事件流包括三个阶段:事件捕获阶段.处于目标阶段和事件冒泡阶段.目前大部分的浏览器的事件流是事件冒泡, ...
- Android艺术开发探索第三章——View的事件体系(上)
Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...
- JavaScript Event 事件 事件流 事件对象 事件处理程序 回调函数 error和try...catch和throw
参考资料: 慕课网 DOM事件探秘 js事件对象 处理 事件驱动: JS是采用事件驱动的机制来响应用户操作的,也就是说当用户对某个html元素进行操作的时候,会产生一个事件,该事件会驱动某些函数 ...
随机推荐
- RobotFramework自动化测试框架-移动手机自动化测试Click A Point关键字的使用
Click A Point关键字用来模拟点击APP界面上的一个点,该关键字接收两个三个参数[ x=0 | y=0 | duration=100 ],x和y代表的是点的坐标位置,duration代表的是 ...
- struts2-学习笔记(三)
Struts2 学习笔记(三) 1.ognl概述: OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用O ...
- django使用xlwt导出excel文件
这里只是mark一下导出的方法,并没有做什么REST处理和异常处理. 维护统一的style样式,可以使导出的数据更加美观. def export_excel(request): # 设置HttpRes ...
- java8中Stream数据流
筛选重复的元素 Stream 接口支持 distinct 的方法, 它会返回一个元素(根据流所生成元素的 hashCode和equals方法实现)的流. 例如,以下代码会筛选出列表中所有的偶数,并确保 ...
- 【特效】几种实用的按钮hover效果
效果预览:http://www.gbtags.com/gb/rtreplayerpreview-standalone/3095.htm html: <ul class="btn&quo ...
- C#如何连接wifi和指定IP
大家好哈,这是我第一次写博客,我也是才大一结束,自学了10多天C#,有不对的欢迎大家指正,最近因为项目的事而被Wifi和IP折磨了很久,后来借用了一下外国人的SimpleWifi.dll 再自己写了一 ...
- 容器平台选型的十大模式:Docker、DC/OS、K8S 谁与当先?
作者:刘超 来自:网易云 基础服务 无论是在社区,还是在同客户交流的过程中,总会被问到到底什么时候该用 Docker?什么时候用虚拟机?如果使用容器,应该使用哪个容器平台? 显而易见,我不会直接给 ...
- win10 & Ubuntu16 双系统安装
忽然心血来潮吧,本机在已经安装了win10的背景下,想要再加一个linux系统学习学习,几经波折,终于成功. 博主笔记本里有两块固态,一个250G的装了win10,装的时间不久,镜像是在msdn上下载 ...
- STM32F10x -- 利用IIC协议操作AT24C02
关于AT24C02芯片的一些参数性能可参考其他的一些相关资料.此处只贴出程序. 宏文件AT24CXX.h #ifndef _AT24CXX_H_ #define _AT24CXX_H_ #includ ...
- Windows下Mysql5.7开启binlog步骤及注意事项
1.查看是否开启了binlog:show binary logs; 默认情况下是不开启的. 2.开启binlog:修改mysql的配置文件my.ini.添加如下配置: 该文件默认不允许修改,需要右键“ ...