C#委托现实示例分析

本文实例讲述了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#程序设计有所帮助。

0.222195s