Use of delegation and events, use of delegation events
Using System;
Using System. Collections. Generic;
Using System. Linq;
Using System. Text;
Using System. Threading. Tasks;
Namespace delegatedemo
{
Public delegate void BoilDelegate (int temp );
Public class Heater
{
Public int temprature;
Public event BoilDelegate boilEvent;
Public void Boil ()
{
For (int I = 0; I <= 100; I ++)
{
Temprature = I;
If (temprature> 95)
{
If (boilEvent! = Null)
{
BoilEvent (temprature );
}
}
}
}
}
}
Displays and alarms
Using System;
Using System. Collections. Generic;
Using System. Linq;
Using System. Text;
Using System. Threading. Tasks;
Namespace delegatedemo
{
Public class Alerm
{
Public void MakeAlerm (int temp)
{
Console. WriteLine ("drip, water already {0} degree! ", Temp );
}
}
Public class Display
{
Public void ShowMsg (int temp)
{
Console. WriteLine ("the water temperature is {0} degrees", temp );
Console. ReadKey ();
}
}
}
Call:
Using System;
Using System. Collections. Generic;
Using System. Linq;
Using System. Text;
Using System. Threading. Tasks;
Namespace delegatedemo
{
Class Program
{
Static void Main (string [] args)
{
Heater = new Heater ();
Heater. boilEvent + = new Alerm (). MakeAlerm; // register an alarm event
Heater. boilEvent + = new Display (). ShowMsg; // register an event that shows temperature
Heater. Boil ();
}
}
}