C#中事件的概念,可以说应用非常广的。尤其是在WinForm的程序中,按钮的点击,窗口的移动都是用事件表示的。熟悉的同学都知道,C#中有一个Timer定时器类。今天我们就自制一个Timer类,来学习C#中的事件机制。Here we go!!!
工具/原料
visual studio 2013
方法/步骤
1
首先我们要说一下,事件的五要素:事件源事件事件订阅事件响应者事件响应方法如下图:
2
了解了事件五元素,下面我们看看这五个元素都是怎么体现的。新建控制台应用程序,如下图:
3
添加myTimer类,如下图:
4
下面重点来了,在myTime类中,添加事件声明。声明事件的格式是 “event 委托名 事件名”。下面我们依次添加委托、事件。如下图:注意:声明委托的时候,一定要声明在namespace里。 myTimer类发出Time事件,自然就是事件源喽。 而事件就是Time事件。
5
C#的Timer类中有 Interval属性,我们也添加一个。顺便说一个小技巧,输入prop四个字母,再按两下Tab键。就可以快速添加属性。如下图:
6
C#的Timer类,有Start方法。我们也照方抓药,如下:
7
准备工作已经做好了,我们来实现具体的代码。如下:
8
如上一步骤所示:我们添加了两个long类型的变量和两个方法。其中onTime是用来触发事件的,自定义方法就这样触发。CheckThread是用来实时监测是否到时间的。下面在Main函数中,写测试程序。如下图:注意:在Main函数中写响应程序,自然Program类就是事件响应者了。 timer.Timer += timer_Timer; 这一句就是事件订阅。 timer_Timer()就是事件响应方法。至此事件五元素都凑齐了,我们来看看是否能够事件计时功能。
9
运行结果如下:可以看到输出的两个值相差1000,满足要求。
注意事项
1
事件是以委托为基础的,请理解了委托在看此教程。
2
如果觉得本文对你有帮助,帮忙点一下投票,不胜感激。