1. Create a new console application TestDelegate. This project mainly implements a simple event processing program: Water Heater heating, alarm monitoring, and alarm when the hot water temperature reaches 80 degrees.
2. Define the delegate Handler
Copy codeThe Code is as follows:
Public delegate void PlayGameHandler (object sender, System. EventArgs e );
3. Add an alarm class. The alarm method is called only when the temperature exceeds 80 degrees.
Copy codeThe Code is as follows:
// The person in charge of the alarm
Public class alarm
{
Public alarm ()
{
Console. WriteLine ("generating alarms ...");
}
Public void alarm (object sender, EventArgs e)
{
System. Threading. Thread. Sleep (100); // 0.1 seconds off
Console. WriteLine ("Didi .... The temperature exceeds 80 degrees ...");
}
}
4. Add a water heater class and use the circulating heating water heater to increase from 1 to 100 degrees. When the temperature exceeds 80 degrees, trigger an event alarm.
Copy codeThe Code is as follows:
// If heated, an event is triggered.
Public class Water Heater
{
// Define an event first, which indicates that the "water heater" is being heated.
Public event PlayGameHandler PlayGame;
Public water heater ()
{
Console. WriteLine ("generating water heater ....");
}
Public void heating ()
{
Console. WriteLine ("started heating .....");
System. EventArgs e = new EventArgs ();
For (int I = 1; I <101; I ++) // trigger an event for each increase in temperature
{
System. Threading. Thread. Sleep (100); // 0.1 seconds off
Console. WriteLine (I. ToString () + "degree ");
If (PlayGame! = Null)
{
If (I> = 80) // when the temperature is greater than 80 degrees
PlayGame (this, e); // trigger the event
}
}
}
}
5. The client starts calling
Copy codeThe Code is as follows:
Public class Program
{
// [STAThread]
Public static void Main (string [] args)
{
Console. WriteLine ("the scenario has started ....");
Alarm w = new alarm ();
Water heater z = new water heater ();
// Specify monitoring
Z. PlayGame + = new PlayGameHandler (w. Alarm );
System. Threading. Thread. Sleep (1000 );
// Start heating
Z. heating ();
Console. WriteLine ("End of scenario ...");
Console. ReadLine ();
}
}
Run the command to view more data.