首页 > 编程 > C# > 正文

C#委托现实示例分析

2020-01-24 01:57:11
字体:
来源:转载
供稿:网友

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表