using System; using System.Collections.Generic; using System.Text; namespace 事件处理 { // Declare the delegate handler for the event: public delegate void MyEventHandler(); class TestEvent { // Declare the event implemented by MyEventHandler. public event MyEventHandler TriggerIt; // Declare a method that triggers the event: public void Trigger() { TriggerIt(); } // Declare the methods that will be associated with the TriggerIt event. public void MyMethod1() { System.Console.WriteLine("Hello!"); } public void MyMethod2() { System.Console.WriteLine("Hello again!"); } public void MyMethod3() { System.Console.WriteLine("Good-bye!"); } static void Main() { // Create an instance of the TestEvent class. TestEvent myEvent = new TestEvent(); // Subscribe to the event by associating the handlers with the events: myEvent.TriggerIt += new MyEventHandler(myEvent.MyMethod1); myEvent.TriggerIt += new MyEventHandler(myEvent.MyMethod2); myEvent.TriggerIt += new MyEventHandler(myEvent.MyMethod3); // Trigger the event: myEvent.Trigger(); // Unsuscribe from the the event by removing the handler from the event: myEvent.TriggerIt -= new MyEventHandler(myEvent.MyMethod2); System.Console.WriteLine("\"Hello again!\" unsubscribed from the event."); // Trigger the new event: myEvent.Trigger(); Console.ReadKey(); } } }
输出内容如下:
Hello! Hello again! Good-bye! "Hello again!" unsubscribed from the event. Hello! Good-bye!