C#委托现实示例分析
程序员文章站
2023-08-22 22:07:21
本文实例讲述了c#委托现实的用法。分享给大家供大家参考。具体分析如下:
using system;
using system.collections.gener...
本文实例讲述了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#程序设计有所帮助。