事件(event)被廣泛用于對象間的通信,例如Windows的應用程序就是基于消息機制的。C# 事件除了表示發生了某個有意義的事件外,還表示已經定義了一個可以處理通知的對象(委托)。
事件的兩種聲明格式在前面的類成員說明中已經給出。
即平凡事件格式:
[[屬性]] [事件修飾符] event 委托類型 標識符[ = 表達式 或 數組初始化器][, ……];
或非平凡事件格式:
[[屬性]] [事件修飾符] event 委托類型 事件名 {
[[屬性]] add {……}
[[屬性]] remove {……}
}
其中,事件修飾符與方法修飾符的相同。
例如(鼠標單擊事件Click):
// 定義
public delegate void EventHandler(object sender, System.EventArgs e);
public class Button {
public event EventHandler Click;
public void Reset() {
Click = null;
}
}
// 使用
using System;
public class Form1 {
public Form1() {
// 為Button1的Click事件添加事件處理程序Button1_Click
Button1.Click += new EventHandler(Button1_Click);
}
Button Button1 = new Button();
void Button1_Click(object sender, EventArgs e) {
Console.WriteLine("Button1 was clicked!");
}
public void Disconnect() {
Button1.Click -= new EventHandler(Button1_Click);
}
}
新聞熱點
疑難解答