C#-事件(十八)
概述
事件(Event) 基本上说是一个用户操作,如按键、点击、鼠标移动
使用事件,可以很方便地确定程序执行顺序
事件在类中声明且生成,且通过使用同一个类或其他类中的委托与事件处理程序关联
包含事件的类用于发布事称为 发布器(publisher) 类
其他接受该事件的类被称为 订阅器(subscriber) 类
事件发布器和事件订阅器通过委托来实现发送方和接收方的事件触发
实例
1 using System; 2 namespace ConsoleApp1 3 { 4 class eventTest 5 { 6 // 声明委托 7 public delegate void EventHander(object sender, EventArgs e); 8 public string sex { get; set; } = "man"; 9 10 // 定义事件,基于委托 11 public event EventHander GoToilet; 12 // 触发事件 13 public void OnEvent(EventArgs e) 14 { 15 if(this.GoToilet != null) 16 { 17 this.GoToilet(this, e); 18 } 19 } 20 public static void Toilet(object sender, EventArgs e) 21 { 22 var core = (eventTest)sender; 23 Console.WriteLine("please enter " + core.sex + " toilet"); 24 } 25 static void Main(string[] args) 26 { 27 var et = new eventTest(); 28 et.GoToilet += new EventHander(Toilet); 29 while (true) 30 { 31 et.OnEvent(null); 32 Console.ReadKey(); 33 } 34 } 35 } 36 }
结果