事件是C#的一個重要特性。事件主要涉及發布者,訂閱者,以及事件處理程序。
使用.net 類庫中預定義的委托類型可以很方便的定義事件。 發布者觸發事件後,訂閱者即執行事件處理函數:代碼及運行結果如下:
public class Yiqiok //事件發布者 { public event EventHandler LolInvite; //使用.NET類庫預定義的委托類型定義事件 public void InviteComing(string msg) //發出事件 { if(LolInvite!=null) //檢查是否添加了事件處理方法 { Console.WriteLine(msg); LolInvite(this, new EventArgs()); //觸發事件 } } } public class Classmate //事件訂閱者 { private string name; public Classmate (string Name) { name = Name; } public void SendResponse(object s,EventArgs e) //事件處理函數,要與預定義委托類型匹配 { Console.WriteLine("來自:" + this.name + "的回復: 已經收到邀請,隨時可以開始!"); } } public class Start { static void Main() { Yiqiok yiqiok = new Yiqiok();//初始化 Classmate classmate1 = new Classmate("Lna"); Classmate classmate2 = new Classmate("Jim"); Classmate classmate3 = new Classmate("Cry"); Classmate classmate4 = new Classmate("Tom"); yiqiok.LolInvite += new EventHandler(classmate1.SendResponse);//訂閱事件 yiqiok.LolInvite += new EventHandler(classmate2.SendResponse); yiqiok.LolInvite += new EventHandler(classmate3.SendResponse); yiqiok.LolInvite += new EventHandler(classmate4.SendResponse); yiqiok.InviteComing("yiqiok:五人開黑來不來???"); //發出通知 } }