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