当前位置: 首页 > 编程笔记 >

C#委托现实示例分析

赵星华
2023-03-14
本文向大家介绍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#委托delegate实例解析,包括了C#委托delegate实例解析的使用技巧和注意事项,需要的朋友参考一下 所谓c#的委托就是说把函数当参数来传递。 这个在js完全就用不着搞什么委托东西,直接转就是了。而对于C#来说则不是这样! 一个函数,如果它的参数是函数,那么是这样子写的 : 意思是说这个将被传进来的函数是一个没有return的函数,就是public void, 它需要一个

  • 本文向大家介绍PHP __call()方法实现委托示例,包括了PHP __call()方法实现委托示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP __call()方法实现委托。分享给大家供大家参考,具体如下: 委托是指一个对象转发或者委托一个请求给另一个对象,被委托的一方替原先对象处理请求。这类似于继承,和在子类中调用父类的方法有点儿相似。 但在继承时,父类与子类的关系是固定的

  • 主要内容:声明委托,实例化委托,多播委托(合并委托)C# 中的委托(Delegate)类似于 C 或 C++ 中的函数指针,是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。委托特别适用于实现事件和回调方法,所有的委托都派生自 System.Delegate 类。在实例化委托时,可以将委托的实例与具有相同返回值类型的方法相关联,这样就可以通过委托来调用方法。另外,使用委托还可以将方法作为参数传递给其他方法, 委托具有以下特点: 委托类似

  • 本文向大家介绍jQuery的事件委托实例分析,包括了jQuery的事件委托实例分析的使用技巧和注意事项,需要的朋友参考一下 事件委托主要是利用事件冒泡现象来实现的,对于事件委托的精准的掌握,可以有利于提高代码的执行效率。先看一段代码实例: 在以上代码中,使用bind()方法为每一个td绑定了一个click事件处理函数,这样当点击单元格的时候,就会重新设置单元格中的文本。虽然此中方式实现了需要的效果

  • 本文向大家介绍JavaScript事件委托技术实例分析,包括了JavaScript事件委托技术实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了JavaScript事件委托技术。分享给大家供大家参考。具体分析如下: 如果一个整体页面里有大量的按钮.我们就要为每一个按钮绑定事件处理程序.这样就会影响性能了. 首先每个函数都是对象,对象就会占用很多内存.内存中的对象越多,性能就越差. 其

  • 实现on,off的事件委托! 我们能根据之前的思路,利用同样的方法实现一个事件委托. 先来看看流程图 然后先看看结果是如何,毕竟流程图看的也不一定能懂。 最后我们再来看看代码 Kodo.deleEvents = []; //事件委托存放的事件 Kodo.deleId = 0; //事件委托的唯一标识 on: function(type, selector, fn) { if (typeo