事件是使用者操作,例如:按鍵,點選,滑鼠移動等,或者某些事件,例如:系統生成的通知。應用程式需要響應事件發生時。 例如,中斷。事件用於進程間通訊。
事件在類中宣告和引發,並使用同一個類或其他類中的委託與事件處理程式相關聯。包含事件的類用於發布事件。這被稱為發布者類。接受這個事件的其他類被稱為訂閱者類。事件使用發布者訂閱者模型。
發布者是一個包含事件和委託的定義的物件。事件委託關聯也在此物件中定義。 發布者類物件呼叫該事件,並將其通知給其他物件。
訂閱者是接受事件並提供事件處理程式的物件。發布者類中的委託呼叫訂閱者類的方法(事件處理程式)。
要在類中宣告事件,首先必須宣告事件的委託型別。 例如,
public delegate string MyDel(string str);
接下來,使用event
關鍵字宣告事件:
event MyDel MyEvent;
上面的程式碼定義了一個名稱為BoilerLogHandler
的委託和一個名稱為BoilerEventLog
的事件,它在引發時呼叫委託。
using System;
namespace SampleApp {
public delegate string MyDel(string str);
class EventProgram {
event MyDel MyEvent;
public EventProgram() {
this.MyEvent += new MyDel(this.WelcomeUser);
}
public string WelcomeUser(string username) {
return "Welcome " + username;
}
static void Main(string[] args) {
EventProgram obj1 = new EventProgram();
string result = obj1.MyEvent("Yiibai Yiibai");
Console.WriteLine(result);
}
}
}
當上述程式碼被編譯並執行時,它產生以下結果:
Welcome Yiibai Point