標籤:
//-------------------事件---------------------------
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace _01事件理解 8 { 9 class Program10 {11 static void Main(string[] args)12 {13 Mp3Player mp3 = new Mp3Player();14 15 mp3.AfterPowerOn += ShowOn;16 mp3.BeforePowerOff += ShowOff;17 18 mp3.PowerOn();19 mp3.PowerOff();20 Console.ReadKey();21 }22 23 24 static void ShowOn()25 {26 Console.WriteLine("播放開機動畫");27 }28 29 static void ShowOff()30 {31 Console.WriteLine("播放關機動畫");32 }33 34 }35 36 37 38 39 public class Mp3Player40 {41 42 //將委託前面 添加event 變成事件 那麼 該委託只能在該類內部實現43 //在類的外部不能調用該委託 44 45 //也就是 外部只能註冊或刪除已經註冊的方法 不能自己去調用 46 //調用只能是在這個類的內部47 48 //也就是委託添加event之後 再類的外部 就變成了 event 只能通過+= -= 來註冊 刪除方法不能 加()執行49 50 public event Action AfterPowerOn;51 public event Action BeforePowerOff;52 53 public void PowerOn()54 {55 56 Console.WriteLine("開機...");57 58 //開機後執行委託 可以理解為事件59 if (AfterPowerOn != null)60 {61 AfterPowerOn();62 }63 64 MusicStart();65 }66 67 public void PowerOff()68 {69 70 MusicStop();71 72 //關機前的委託調用 如果委託不為空白的話 此處理解為 事件73 if (BeforePowerOff != null)74 {75 BeforePowerOff();76 }77 Console.WriteLine("關機");78 79 }80 81 private void MusicStart()82 {83 Console.WriteLine("開始播放music");84 }85 86 private void MusicStop()87 {88 Console.WriteLine("Music stop...");89 }90 }91 }
事件理解
C#_event_事件