基于事件的编程:创建复杂且高度互动的Windows应用程序
1. 委托(Delegates)
在C#中,委托构成了事件的基础。委托是.NET类的特殊类型,它们的实例存储的是方法的引用(地址),而不是实际的数据。委托不仅用于响应GUI事件的Windows应用程序之外的应用程序中;然而,它们与事件的关系使它们变得有趣且值得在此介绍。
定义委托
委托基类类型定义在 System
命名空间中。委托的声明看起来更像是方法声明而不是类定义;然而,它没有主体。它以关键字 delegate
开始,以参数的括号列表结束,后面跟着一个分号。每个委托类型都有一个签名,该签名可能包括零个或多个参数。记住,方法的签名包括其名称、参数数量和参数类型。方法的签名不包括返回类型。就像方法一样,委托可能包括返回类型或作为其标题的一部分的关键字 void
。然而,与方法不同的是,委托的返回类型成为其识别签名的一部分。
// 示例9-1
delegate string ReturnsSimpleString();
使用委托
在C#中,这些后台的管道工作不需要程序员过多干预即可处理。实际上,如果你