c#事件订阅和注册
最典型的事件例子,猫叫了(事件源),老鼠跑了(事件订阅者),惊醒主人(事件订阅者)
源代码:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Cat cat = new Cat(); 6 7 cat.catEvent += Mouse;//订阅猫事件 8 cat.catEvent += Person;//订阅人事件 9 10 cat.Cry("猫:喵~");//猫叫的动作,触发事件 11 12 Console.ReadKey(); 13 } 14 15 private static void Person(object sender, EventArgs e) 16 { 17 Console.WriteLine("人:大半夜的不睡觉,叫唤个啥呢?~"); 18 } 19 20 private static void Mouse(object sender, EventArgs e) 21 { 22 Console.WriteLine("猫:快跑~"); 23 } 24 } 25 26 public class Cat 27 { 28 public event EventHandler<EventArgs> catEvent; 29 30 public void Cry(string msg) 31 { 32 Console.WriteLine(msg); 33 34 catEvent(this, new EventArgs()); 35 } 36 } 37 }
执行结果: