C# - 事件
/// <summary>
/// 自定义事件-步骤:
/// 1、声明关于事件的委托
/// 2、声明事件
/// 3、编写触发事件的方法
/// 4、创建事件处理程序
/// 5、注册事件处理程序
/// 6、在适当的条件下出发事件
/// </summary>
Dog.cs代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 事件 8 { 9 public class Dog 10 { 11 //1、声明关于事件的委托 :发送事件的发送者 :事件本身的参数 12 public delegate void AlarmEvenHandler(object sender, EventArgs e); 13 14 //2、声明事件 15 public event AlarmEvenHandler Alarm; 16 17 //3、编写触发事件的方法 18 public void OnAlarm() 19 { 20 if (Alarm != null) 21 { 22 Console.WriteLine("\n狗报警,有小偷进来了………………\n"); 23 //寻找事件 24 this.Alarm(this, new EventArgs()); 25 } 26 } 27 } 28 }
Host.cs代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 事件 8 { 9 public class Host 10 { 11 //4、编写事件处理方法 12 public void HostHandleAlarm(object sender, EventArgs e) 13 { 14 Console.WriteLine("主人:抓住小偷!"); 15 } 16 17 //5、注册时间处理方法 18 public Host(Dog dog) 19 { 20 dog.Alarm += new Dog.AlarmEvenHandler(HostHandleAlarm); 21 } 22 } 23 }
Program.cs代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 事件 8 { 9 class Program 10 { 11 //6、触发事件 12 static void Main(string[] args) 13 { 14 Dog dog = new Dog(); 15 16 Host host = new Host(dog); 17 18 Console.WriteLine("小偷进入………………"); 19 20 dog.OnAlarm(); 21 22 Console.ReadKey(); 23 } 24 } 25 }
posted on 2015-05-24 16:38 ultrastrong 阅读(158) 评论(0) 编辑 收藏 举报