下面的例子演示了如何使用事件(event)、枚举(Enumeration)和委托(delegate),就是这么简单。
class Foo {
private void PowerModeChangedCallback(Object sender, PowerModeChangedEventArgs e) {Console.WriteLine("Power mode changed.");
}private void Bar() {// 此处用到了delegate和event,注册了系统事件
SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(PowerModeChangedCallback);
// 枚举和类的static成员变量一样
PowerModes pm = PowerModes.Resume;}}
其中:PowerModes是枚举,PowerModeChangedEventHandler是委托,SystemEvents.PowerModeChanged是事件成员变量,枚举和委托实际上是“类”,之所以称之为“类”是因为C#中全是类。可以看到:
1. 枚举是只有静态成员变量的类。
2. 事件是委托对象,用来注册和触发具体的事件处理函数。
3. 委托是对回调函数的封装,实际上,回调函数具体指的就是函数指针。