事件(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);
}
}
新闻热点
疑难解答