.NET Framework作为一款软Web Services引擎,为开发人员提供了一个完善并且透明的基础架构。作为这样一个非常好的工具,我们必须要深入的研究其中的具体含义。那就让我们先从一段代码示例来了解一下.NET Framework声明委托的相关概念吧。#t#
.NET Framework声明委托代码范例如下:
- public delegate void BoiledEventHandler
(Object sender, BoliedEventArgs e); - public event BoiledEventHandler Boiled;
//声明事件 - // 定义BoliedEventArgs类,传递给Observer
所感兴趣的信息 - public class BoliedEventArgs : EventArgs {
- public readonly int temperature;
- public BoliedEventArgs(int temperature) {
- this.temperature = temperature;
- }
- }
- // 可以供继承自 Heater 的类重写,以便继承类拒绝
其他对象对它的监视 - protected virtual void OnBolied(Bolied
EventArgs e) { - if (Boiled != null) { // 如果有对象注册
- Boiled(this, e); // 调用所有注册对象的方法
- }
- }
- // 烧水。
- public void BoilWater() {
- for (int i = 0; i <= 100; i++) {
- temperature = i;
- if (temperature > 95) {
- //建立BoliedEventArgs 对象。
- BoliedEventArgs e = new BoliedEventArgs
(temperature); - OnBolied(e); // 调用 OnBolied方法
- }
- }
- }
- }
- // 警报器
- public class Alarm {
- public void MakeAlert(Object sender,
Heater.BoliedEventArgs e) { - Heater heater = (Heater)sender;
//这里是不是很熟悉呢? - //访问 sender 中的公共字段
- Console.WriteLine("Alarm:{0} - {1}: ",
heater.area, heater.type); - Console.WriteLine("Alarm: 嘀嘀嘀,水已经 {0}
度了:", e.temperature); - Console.WriteLine();
- }
- }
希望上面介绍的.NET Framework声明委托的方法能够对大家有所帮助。