C#委托現(xiàn)實(shí)示例分析
本文實(shí)例講述了C#委托現(xiàn)實(shí)的用法。分享給大家供大家參考。具體分析如下:
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) {
//如果有對(duì)象注冊(cè)
BoilEvent(temperature);
//調(diào)用所有注冊(cè)對(duì)象的方法
}
}
}
}
}
// 警報(bà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;
//注冊(cè)方法
heater.BoilEvent += (new Alarm()).MakeAlert;
//給匿名對(duì)象注冊(cè)方法
heater.BoilEvent += Display.ShowMsg;
//注冊(cè)靜態(tài)方法
heater.BoilWater();
//燒水,會(huì)自動(dòng)調(diào)用注冊(cè)過對(duì)象的方法
}
}
}
輸出為:
Alarm:嘀嘀嘀,水已經(jīng) 96 度了: Alarm:嘀嘀嘀,水已經(jīng) 96 度了: Display:水快燒開了,當(dāng)前溫度:96度。
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#中IList 與 List 的區(qū)別小結(jié)
IList 接口和 List 類是 C# 中用于集合操作的兩個(gè)重要的類型,本文主要介紹了C#中IList 與 List 的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
C#使用Aspose.Cells創(chuàng)建和讀取Excel文件
這篇文章主要為大家詳細(xì)介紹了C#使用Aspose.Cells創(chuàng)建和讀取Excel文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
C#使用iTextSharp將PDF轉(zhuǎn)成文本的方法
這篇文章主要介紹了C#使用iTextSharp將PDF轉(zhuǎn)成文本的方法,涉及C#操作pdf文件的相關(guān)技巧,需要的朋友可以參考下2015-05-05
C#實(shí)現(xiàn)Excel導(dǎo)入sqlite的方法
這篇文章主要介紹了C#實(shí)現(xiàn)Excel導(dǎo)入sqlite的方法,是C#程序設(shè)計(jì)中非常重要的一個(gè)實(shí)用技巧,需要的朋友可以參考下2014-09-09
C#中后臺(tái)post請(qǐng)求常用的兩種方式總結(jié)
這篇文章主要介紹了C#中后臺(tái)post請(qǐng)求常用的兩種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
C#高級(jí)靜態(tài)語(yǔ)言效率利器之泛型詳解
所謂泛型,就是創(chuàng)建一個(gè)函數(shù),對(duì)所有數(shù)據(jù)類型都生效。這篇文章就來(lái)帶大家深入了解一下C#中高級(jí)靜態(tài)語(yǔ)言效率利器——泛型的使用,需要的可以參考一下2023-02-02
C#實(shí)現(xiàn)嵌套循環(huán)的示例代碼
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)嵌套循環(huán)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09
C#中List集合使用Max()方法查找到最大值的實(shí)例
這篇文章主要介紹了C#中List集合使用Max()方法查找到最大值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-12-12
C#中閉包的實(shí)現(xiàn)和注意事項(xiàng)詳解
閉包并不是某一個(gè)語(yǔ)言中特有的概念,在主流的編程語(yǔ)言中都有這個(gè)特性,閉包可以讓一個(gè)內(nèi)部方法可以訪問它所在外部方法中的變量,并可以對(duì)變量的值進(jìn)行修改,即使在外部方法的生命周期已經(jīng)結(jié)束后,本文給大家介紹了C#中閉包的實(shí)現(xiàn)和注意事項(xiàng),需要的朋友可以參考下2025-01-01

