C#一个关于委托和事件通俗易懂的例子
1 using System; 2 3 namespace Test 4 { 5 public class 室友 6 { 7 public delegate void 这是一个委托(); 8 9 public void 起床晨跑去() 10 { 11 Console.WriteLine("室友:喂,起床啦!"); 12 if (叫别人起床该干嘛干嘛 != null) //如果有人委托我什么 13 { 14 叫别人起床该干嘛干嘛(); 15 } 16 Console.WriteLine("室友:完事走人,晨跑去!"); 17 } 18 19 public event 这是一个委托 叫别人起床该干嘛干嘛; 20 } 21 22 public class 要晨读的我 23 { 24 public void 起床晨读() 25 { 26 Console.WriteLine("我:哦,起来了!!!"); 27 Console.WriteLine("我:一二三四五,上网看知乎,刷完知乎再晨读!"); 28 } 29 } 30 31 public class 王八犊子 32 { 33 public void 赌五毛起不来() 34 { 35 Console.WriteLine("王八犊子:五毛拿走,劳资要碎觉!"); 36 } 37 } 38 39 class Program 40 { 41 static void Main(string[] args) 42 { 43 44 var 中国好室友 = new 室友(); 45 var 我 = new 要晨读的我(); 46 var 王八犊子 = new 王八犊子(); 47 48 //我先告诉室友:我要早起晨读 49 中国好室友.叫别人起床该干嘛干嘛 += 我.起床晨读; 50 //王八犊子来搅屎了 51 中国好室友.叫别人起床该干嘛干嘛 += 王八犊子.赌五毛起不来; 52 //于是第二天到了 53 Console.WriteLine("闹铃:早上七点钟..."); 54 Console.WriteLine("系统提示:室友起床了!"); 55 中国好室友.起床晨跑去(); 56 } 57 } 58 }