. Net Custom Event example sharing

Source: Internet
Author: User

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.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.