全方位解讀.NET Framework聲明委托代碼示例
作者:佚名
.NET Framework聲明委托的相關實現方法在實際應用中還是比較常見的。那么,初學者在學習的過程中就應該牢固的把握好這一應用技巧。
.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聲明委托的方法能夠對大家有所幫助。
責任編輯:曹凱
來源:
IT168