public class A { public delegate void Changed (A a); protected event Changed _changed; public void Register (Changed changed) { _changed += changed; _changed (this); } } public class Test { public static void Main () { A a = new A (); a.Register (new A.Changed (Del)); } public static void Del (A a) { System.Console.WriteLine ("Solved"); } }