全方位解读.NET Framework声明委托代码示例

开发
.NET Framework声明委托的相关实现方法在实际应用中还是比较常见的。那么,初学者在学习的过程中就应该牢固的把握好这一应用技巧。

.NET Framework作为一款软Web Services引擎,为开发人员提供了一个完善并且透明的基础架构。作为这样一个非常好的工具,我们必须要深入的研究其中的具体含义。那就让我们先从一段代码示例来了解一下.NET Framework声明委托的相关概念吧。#t#

.NET Framework声明委托代码范例如下:

  1. public delegate void BoiledEventHandler
    (Object sender, BoliedEventArgs e);  
  2. public event BoiledEventHandler Boiled;
    //声明事件  
  3. // 定义BoliedEventArgs类,传递给Observer
    所感兴趣的信息  
  4. public class BoliedEventArgs : EventArgs {  
  5. public readonly int temperature;  
  6. public BoliedEventArgs(int temperature) {  
  7. this.temperature = temperature;  
  8. }  
  9. }  
  10. // 可以供继承自 Heater 的类重写,以便继承类拒绝
    其他对象对它的监视  
  11. protected virtual void OnBolied(Bolied
    EventArgs e) {  
  12. if (Boiled != null) { // 如果有对象注册  
  13. Boiled(this, e); // 调用所有注册对象的方法  
  14. }  
  15. }  
  16. // 烧水。  
  17. public void BoilWater() {  
  18. for (int i = 0; i <= 100; i++) {  
  19. temperature = i;  
  20. if (temperature > 95) {  
  21. //建立BoliedEventArgs 对象。  
  22. BoliedEventArgs e = new BoliedEventArgs
    (temperature);  
  23. OnBolied(e); // 调用 OnBolied方法  
  24. }  
  25. }  
  26. }  
  27. }  
  28. // 警报器  
  29. public class Alarm {  
  30. public void MakeAlert(Object sender, 
    Heater.BoliedEventArgs e) {  
  31. Heater heater = (Heater)sender; 
    //这里是不是很熟悉呢?  
  32. //访问 sender 中的公共字段  
  33. Console.WriteLine("Alarm:{0} - {1}: ", 
    heater.area, heater.type);  
  34. Console.WriteLine("Alarm: 嘀嘀嘀,水已经 {0}
     度了:", e.temperature);  
  35. Console.WriteLine();  
  36. }  

希望上面介绍的.NET Framework声明委托的方法能够对大家有所帮助。

责任编辑:曹凯 来源: IT168
相关推荐

2010-01-05 17:46:04

.NET Framew

2009-12-15 10:10:42

Ruby过程对象

2010-01-11 13:42:20

VB.NET字符串加密

2010-01-04 14:06:35

Silverlight

2009-12-16 17:07:27

Ruby on Rai

2009-12-21 13:06:05

WCF Address

2009-12-15 10:48:54

Ruby局部变量

2009-12-14 17:04:13

Ruby读写UNIX命

2011-10-26 09:28:28

红帽大数据Gluster

2010-01-27 13:52:15

Android多媒体框

2014-06-26 17:25:22

车联网 ECU

2024-05-10 14:35:56

人工智能大型语言模型

2009-08-18 11:08:24

.Net Framew

2009-10-22 11:28:35

VB.NET编码规范

2016-02-16 14:42:58

戴尔云计算

2013-03-01 09:56:57

2010-01-05 18:21:33

.NET Framew

2010-01-19 17:03:25

VB.NET可执行语句

2010-01-08 10:48:05

VB.NET多线程

2016-12-14 14:43:11

ButterknifeAndroid
点赞
收藏

51CTO技术栈公众号