C#委托现实示例分析

 更新时间:2015年04月22日 12:16:50   作者:songguo  
这篇文章主要介绍了C#委托现实,实例分析了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#程序设计有所帮助。

相关文章

  • C#使用Linq to XML进行XPath查询的代码实现

    C#使用Linq to XML进行XPath查询的代码实现

    最近在用到HtmlAgliltyPack进行结点查询时,发现这里选择结点使用的是XPath,所以这里总结一下在C#中使用XPath查询XML的方法,习惯了用Linq,这里也是用的Linq to xml的,需要的朋友可以参考下
    2024-08-08
  • WPF InkCanvas绘制矩形和椭圆

    WPF InkCanvas绘制矩形和椭圆

    这篇文章主要为大家详细介绍了WPF InkCanvas绘制矩形和椭圆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • C#之多余控件事件及代码删除问题

    C#之多余控件事件及代码删除问题

    这篇文章主要介绍了C#之多余控件事件及代码删除问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • C#枚举类型和结构体详解

    C#枚举类型和结构体详解

    这篇文章主要为大家详细介绍了C#枚举类型和结构体,,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • C#利用RabbitMQ实现点对点消息传输

    C#利用RabbitMQ实现点对点消息传输

    RabbitMQ做为消息代理,负责接收和转发消息,可以将RabbitMQ比喻为一个邮筒、一个邮局和一个邮递员。本文主要以一个简单的小例子,简述RabbitMQ实现消息传输的相关内容,仅供学习分享使用,如有不足之处,还请指正。
    2021-05-05
  • Unity实现模型点击事件的方法

    Unity实现模型点击事件的方法

    这篇文章主要介绍了Unity实现模型点击事件的方法,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • 解析错误富文本json字符串(带双引号)的快速解决方法

    解析错误富文本json字符串(带双引号)的快速解决方法

    下面小编就为大家带来一篇解析错误富文本json字符串(带双引号)的快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 轻松学习C#的foreach迭代语句

    轻松学习C#的foreach迭代语句

    轻松学习C#的foreach迭代语句,  C#语言提供了一个for语句循环的捷径,而且还促进了集合类的更为一致,就是本文提到的foreach语句,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • C#获取并修改文件扩展名的方法

    C#获取并修改文件扩展名的方法

    这篇文章主要介绍了C#获取并修改文件扩展名的方法,实例分析了C#编程方式修改文件扩展名的技巧,涉及Path类的使用方法,需要的朋友可以参考下
    2015-04-04
  • C# memcache 使用介绍

    C# memcache 使用介绍

    这篇文章主要介绍了C# memcache 使用介绍,需要的朋友可以参考下
    2015-05-05

最新评论