首页 > 其他 > 详细

C# 事件

时间:2014-08-08 20:41:56      阅读:410      评论:0      收藏:0      [点我收藏+]

要创建一个事件驱动的程序需要下面的步骤:

1.         声明关于事件的委托;

2.         声明事件;

3.         编写触发事件的函数;

4.         创建事件处理程序;

5.         注册事件处理程序;

6.         在适当的条件下触发事件。

现在我们来编写一个自定义事件的程序。主人养了一条忠实的看门狗,晚上主人睡觉的时候,狗负责看守房子。一旦有小偷进来,狗就发出一个Alarm事件,主人接到Alarm事件后就会采取相应的行动。假设小偷于2014

 1 using System;
 2 
 3 //事件发送者
 4 class Dog
 5 {
 6     //1.声明关于事件的委托;
 7     public delegate void AlarmEventHandler(object sender, EventArgs e);
 8 
 9     //2.声明事件;   
10     public event AlarmEventHandler Alarm;
11 
12     //3.编写引发事件的函数;
13     public void OnAlarm()
14     {
15         if (this.Alarm != null)
16         {
17             Console.WriteLine("\n狗报警: 有小偷进来了,汪汪~~~~~~~");
18             this.Alarm(this, new EventArgs());   //发出警报
19          }
20     }
21 }
22 
23 //事件接收者
24 class Host
25 {
26     //4.编写事件处理程序
27     void HostHandleAlarm(object sender, EventArgs e)
28     {
29         Console.WriteLine("主  人: 抓住了小偷!");
30     }
31 
32     //5.注册事件处理程序
33     public Host(Dog dog)
34     {
35         dog.Alarm += new Dog.AlarmEventHandler(HostHandleAlarm);
36     }
37 }
38 
39 //6.现在来触发事件
40 class Program
41 {
42     static void Main(string[] args)
43     {
44         Dog dog = new Dog();
45         Host host = new Host(dog);
46 
47         //当前时间,从2008年12月31日23:59:50开始计时
48         DateTime now = new DateTime(2013, 12, 31, 23, 59, 50);
49         DateTime midnight = new DateTime(2014, 1, 1, 0, 0, 0);
50 
51         //等待午夜的到来
52         Console.WriteLine("时间一秒一秒地流逝... ");
53         while (now < midnight)
54         {
55             Console.WriteLine("当前时间: " + now);
56             System.Threading.Thread.Sleep(1000);    //程序暂停一秒
57             now = now.AddSeconds(1);                //时间增加一秒
58          }
59 
60         //午夜零点小偷到达,看门狗引发Alarm事件
61         Console.WriteLine("\n月黑风高的午夜: " + now);
62         Console.WriteLine("小偷悄悄地摸进了主人的屋内... ");
63         dog.OnAlarm();
64         Console.ReadLine();
65     }
66 }   

运行结果:

bubuko.com,布布扣

年元旦午夜时分到达。

C# 事件,布布扣,bubuko.com

C# 事件

原文:http://www.cnblogs.com/wuzhang/p/wuzhang2014881.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!