多语言展示
当前在线:1605今日阅读:27今日分享:41

C#中自定义事件的用法

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

如果觉得本文对你有帮助,帮忙点一下投票,不胜感激。

推荐信息