An event multicast demonstration
/* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // An event multicast demonstration. using System; // Declare a delegate for an event. delegate void MyEventHandler(); // Declare an event class. class MyEvent { public event MyEventHandler SomeEvent; // This is called to fire the event. public void OnSomeEvent() { if(SomeEvent != null) SomeEvent(); } } class X { public void Xhandler() { Console.WriteLine("Event received by X object"); } } class Y { public void Yhandler() { Console.WriteLine("Event received by Y object"); } } public class EventDemo1 { static void handler() { Console.WriteLine("Event received by EventDemo"); } public static void Main() { MyEvent evt = new MyEvent(); X xOb = new X(); Y yOb = new Y(); // Add handlers to the event list. evt.SomeEvent += new MyEventHandler(handler); evt.SomeEvent += new MyEventHandler(xOb.Xhandler); evt.SomeEvent += new MyEventHandler(yOb.Yhandler); // Fire the event. evt.OnSomeEvent(); Console.WriteLine(); // Remove a handler. evt.SomeEvent -= new MyEventHandler(xOb.Xhandler); evt.OnSomeEvent(); } }