C#委托现实示例分析

所属分类: 软件编程 / C#教程 阅读数: 62
收藏 0 赞 0 分享

本文实例讲述了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# SendInput 模拟鼠标操作的实现方法

C# SendInput 模拟鼠标操作的实现方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中 paint()与Onpaint()的区别

paint是事件onpaint方法onpaint方法是调用paint事件的,用哪一个,效果是一样,就看那一个方便了内部是这样实现的:
收藏 0 赞 0 分享

c#中GetType()与Typeof()的区别

c#中GetType()与Typeof()的区别,需要的朋友可以参考一下
收藏 0 赞 0 分享

将字符串转换成System.Drawing.Color类型的方法

将字符串转换成System.Drawing.Color类型的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# 抓取网页内容的方法

C# 抓取网页内容的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

基于C#后台调用跨域MVC服务及带Cookie验证的实现

本篇文章介绍了,基于C#后台调用跨域MVC服务及带Cookie验证的实现。需要的朋友参考下
收藏 0 赞 0 分享

使用C#获取远程图片 Form用户名与密码Authorization认证的实现

本篇文章介绍了,使用C#获取远程图片 Form用户名与密码Authorization认证的实现。需要的朋友参考下
收藏 0 赞 0 分享

Winform跨线程操作的简单方法

线程间操作无效:从不是创建控件“label1”的线程访问它
收藏 0 赞 0 分享

C# WINFORM 强制让窗体获得焦点的方法代码

C# WINFORM 强制让窗体获得焦点的方法代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中方括号[]的语法及作用介绍

C#中方括号[]可用于数组,索引、属性,更重要的是用于外部DLL类库的引用。
收藏 0 赞 0 分享
查看更多