C#委托现实示例分析
本文实例讲述了C#委托现实的用法。分享给大家供大家参考。具体分析如下:
usingSystem; usingSystem.Collections.Generic; usingSystem.Text; namespaceDelegate{ //热水器 publicclassHeater{ privateinttemperature; publicdelegatevoidBoilHandler(intparam); //声明委托 publiceventBoilHandlerBoilEvent; //声明事件 //烧水 publicvoidBoilWater(){ for(inti=0;i<=100;i++){ temperature=i; if(temperature>95){ if(BoilEvent!=null){ //如果有对象注册 BoilEvent(temperature); //调用所有注册对象的方法 } } } } } //警报器 publicclassAlarm{ publicvoidMakeAlert(intparam){ Console.WriteLine("Alarm:嘀嘀嘀,水已经{0}度了:",param); } } //显示器 publicclassDisplay{ publicstaticvoidShowMsg(intparam){//静态方法 Console.WriteLine("Display:水快烧开了,当前温度:{0}度。",param); } } classProgram{ staticvoidMain(){ Heaterheater=newHeater(); Alarmalarm=newAlarm(); heater.BoilEvent+=alarm.MakeAlert; //注册方法 heater.BoilEvent+=(newAlarm()).MakeAlert; //给匿名对象注册方法 heater.BoilEvent+=Display.ShowMsg; //注册静态方法 heater.BoilWater(); //烧水,会自动调用注册过对象的方法 } } }
输出为:
Alarm:嘀嘀嘀,水已经96度了: Alarm:嘀嘀嘀,水已经96度了: Display:水快烧开了,当前温度:96度。
希望本文所述对大家的C#程序设计有所帮助。