欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#委托现实示例分析

程序员文章站 2023-08-22 22:07:21
本文实例讲述了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#程序设计有所帮助。