// using System; delegate void D (); class X { static D r; public static void Main () { D d = T (); d (); r (); r (); } static D T () { int var1 = 0; D d = delegate () { int var2 = 1; r = delegate { Console.WriteLine ("var1: {0} var2: {1}", var1, var2); var2 = var2 + 1; }; var1 = var1 + 1; }; return d; } }