当前位置: 移动技术网 > IT编程>开发语言>c# > C#委托现实示例分析

C#委托现实示例分析

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文实例讲述了c#委托现实的用法。分享给大家供大家参考。具体分析如下: using system; using system.collections.gener

本文实例讲述了c#委托现实的用法。分享给大家供大家参考。具体分析如下:

using system;
using system.collections.generic;
using system.text;
namespace delegate {
 // 热水器
 public class heater {
  private int temperature;
  public delegate void boilhandler(int param);
  //声明委托
  public event boilhandler boilevent;
  //声明事件
  // 烧水
  public void boilwater() {
   for (int i = 0; i <= 100; i++) {
    temperature = i;
    if (temperature > 95) {
     if (boilevent != null) {
 //如果有对象注册
      boilevent(temperature);
  //调用所有注册对象的方法
     }
    }
   }
  }
 }
 // 警报器
 public class alarm {
  public void makealert(int param) {
   console.writeline("alarm:嘀嘀嘀,水已经 {0} 度了:",param);
  }
 }
 // 显示器
 public class display {
  public static void showmsg(int param) { //静态方法
   console.writeline("display:水快烧开了,当前温度:{0}度。",param);
  }
 }
 class program {
  static void main() {
   heater heater = new heater();
   alarm alarm = new alarm();
   heater.boilevent += alarm.makealert;
   //注册方法
   heater.boilevent += (new alarm()).makealert;
   //给匿名对象注册方法
   heater.boilevent += display.showmsg;
   //注册静态方法
   heater.boilwater();
   //烧水,会自动调用注册过对象的方法
  }
 }
}

输出为:

alarm:嘀嘀嘀,水已经 96 度了:
alarm:嘀嘀嘀,水已经 96 度了:
display:水快烧开了,当前温度:96度。

希望本文所述对大家的c#程序设计有所帮助。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网