C#-事件(十八)
阿新 • • 發佈:2018-11-22
leg mes main 發送 點擊 基本 nta ima 事件處理程序 概述
事件(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 // 觸發事件 13public void OnEvent(EventArgs e) 14 { 15 if(this.GoToilet != null) 16 { 17 this.GoToilet(this, e); 18 } 19 } 20 public staticvoid 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 }
結果
C#-事件(十八)