事件(event)被廣泛用于對(duì)象間的通信,例如Windows的應(yīng)用程序就是基于消息機(jī)制的。C# 事件除了表示發(fā)生了某個(gè)有意義的事件外,還表示已經(jīng)定義了一個(gè)可以處理通知的對(duì)象(委托)。
事件的兩種聲明格式在前面的類成員說明中已經(jīng)給出。
即平凡事件格式:
[[屬性]] [事件修飾符] event 委托類型 標(biāo)識(shí)符[ = 表達(dá)式 或 數(shù)組初始化器][, ……];
或非平凡事件格式:
[[屬性]] [事件修飾符] event 委托類型 事件名 {
[[屬性]] add {……}
[[屬性]] remove {……}
}
其中,事件修飾符與方法修飾符的相同。
例如(鼠標(biāo)單擊事件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);
}
}
新聞熱點(diǎn)
疑難解答
圖片精選