Mega Code Archive

 
Categories / C# / Language Basics
 

Chaining events

using System; public class EventTestClass {     private int nValue;     public delegate void ValueChangedEventHandler();     public event ValueChangedEventHandler Changed;     protected virtual void OnChanged() {         if (Changed != null)             Changed();         else             Console.WriteLine("Event fired. No handler!");     }     public EventTestClass(int nValue) {         SetValue(nValue);     }     public void SetValue(int nV) {         if (nValue != nV) {             nValue = nV;             OnChanged();         }     } } public class Mainclass {     public void HandleChange1() {         Console.WriteLine("Handler 1 Called");     }     public void HandleChange2() {         Console.WriteLine("Handler 2 Called");     }     public Mainclass() {     }     public static void Main() {         EventTestClass etc = new EventTestClass(3);         Mainclass app = new Mainclass();         etc.Changed += new EventTestClass.ValueChangedEventHandler(app.HandleChange1);         etc.Changed += new EventTestClass.ValueChangedEventHandler(app.HandleChange2);         etc.SetValue(5);         etc.SetValue(5);         etc.SetValue(3);     } }