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); } }