C# 中的委托与事件详解
1. 多播委托与事件基础
1.1 多播委托示例结果
运行以下代码会得到相应结果:
MulticastDelegate
ProcessAndDisplayNumber called with value = 2
Multiplying by 2: 2 gives 4
Squaring: 2 gives 4
ProcessAndDisplayNumber called with value = 7.94
Multiplying by 2: 7.94 gives 15.88
Squaring: 7.94 gives 63.0436
ProcessAndDisplayNumber called with value = 1.414
Multiplying by 2: 1.414 gives 2.828
Squaring: 1.414 gives 1.999396
使用多播委托时,要注意链接到同一委托的方法调用顺序是未定义的,应避免编写依赖特定调用顺序的代码。
1.2 事件概述
基于 Windows 的应用程序是基于消息的。应用程序与 Windows 通过预定义消息进行通信,这些消息是包含各种信息的结构,用于确定下一步操作。在 MFC 库或 Visual Basic 开发环境出现之前,开发者需手动处理 Windows 发送给应用程序的消息。
Visual Basic 和 .NET 将部分传入消息封装为事件。若要对特定传入消息做出反应,只需处理相应事件。例如,用户点击表单上的按钮时,Window