C#委托現(xiàn)實示例分析
更新時間:2015年04月22日 12:16:50 作者:songguo
這篇文章主要介紹了C#委托現(xiàn)實,實例分析了C#委托的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了C#委托現(xiàn)實的用法。分享給大家供大家參考。具體分析如下:
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);
//調(diào)用所有注冊對象的方法
}
}
}
}
}
// 警報器
public class Alarm {
public void MakeAlert(int param) {
Console.WriteLine("Alarm:嘀嘀嘀,水已經(jīng) {0} 度了:",param);
}
}
// 顯示器
public class Display {
public static void ShowMsg(int param) { //靜態(tài)方法
Console.WriteLine("Display:水快燒開了,當(dāng)前溫度:{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;
//注冊靜態(tài)方法
heater.BoilWater();
//燒水,會自動調(diào)用注冊過對象的方法
}
}
}
輸出為:
Alarm:嘀嘀嘀,水已經(jīng) 96 度了: Alarm:嘀嘀嘀,水已經(jīng) 96 度了: Display:水快燒開了,當(dāng)前溫度:96度。
希望本文所述對大家的C#程序設(shè)計有所幫助。
相關(guān)文章
C#中IList 與 List 的區(qū)別小結(jié)
IList 接口和 List 類是 C# 中用于集合操作的兩個重要的類型,本文主要介紹了C#中IList 與 List 的區(qū)別小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-04-04
C#使用Aspose.Cells創(chuàng)建和讀取Excel文件
這篇文章主要為大家詳細介紹了C#使用Aspose.Cells創(chuàng)建和讀取Excel文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-10-10
C#使用iTextSharp將PDF轉(zhuǎn)成文本的方法
這篇文章主要介紹了C#使用iTextSharp將PDF轉(zhuǎn)成文本的方法,涉及C#操作pdf文件的相關(guān)技巧,需要的朋友可以參考下2015-05-05
C#實現(xiàn)Excel導(dǎo)入sqlite的方法
這篇文章主要介紹了C#實現(xiàn)Excel導(dǎo)入sqlite的方法,是C#程序設(shè)計中非常重要的一個實用技巧,需要的朋友可以參考下2014-09-09

