本文實例講述了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#程序設計有所幫助。
新聞熱點
疑難解答