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#程序设计有所帮助。