全方位解讀.NET Framework聲明委托代碼示例
作者:佚名
.NET Framework聲明委托的相關(guān)實現(xiàn)方法在實際應(yīng)用中還是比較常見的。那么,初學(xué)者在學(xué)習(xí)的過程中就應(yīng)該牢固的把握好這一應(yīng)用技巧。
.NET Framework作為一款軟Web Services引擎,為開發(fā)人員提供了一個完善并且透明的基礎(chǔ)架構(gòu)。作為這樣一個非常好的工具,我們必須要深入的研究其中的具體含義。那就讓我們先從一段代碼示例來了解一下.NET Framework聲明委托的相關(guān)概念吧。#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 的類重寫,以便繼承類拒絕
其他對象對它的監(jiān)視 - protected virtual void OnBolied(Bolied
EventArgs e) { - if (Boiled != null) { // 如果有對象注冊
- Boiled(this, e); // 調(diào)用所有注冊對象的方法
- }
- }
- // 燒水。
- public void BoilWater() {
- for (int i = 0; i <= 100; i++) {
- temperature = i;
- if (temperature > 95) {
- //建立BoliedEventArgs 對象。
- BoliedEventArgs e = new BoliedEventArgs
(temperature); - OnBolied(e); // 調(diào)用 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: 嘀嘀嘀,水已經(jīng) {0}
度了:", e.temperature); - Console.WriteLine();
- }
- }
希望上面介紹的.NET Framework聲明委托的方法能夠?qū)Υ蠹矣兴鶐椭?/p>
責(zé)任編輯:曹凱
來源:
IT168