using System; namespace ClassExamples { class Test { delegate void D(); static D[] F() { D[] result = new D[3]; for (int i=0; i<3; i++) { int x = i*2 + 1; result[i] = delegate { Console.WriteLine(x); x++; }; } return result; } static D[] G() { D[] result = new D[3]; int x; for (int i=0; i<3; i++) { x = i*2 + 1; result[i] = delegate { Console.WriteLine(x); x++; }; } return result; } static void Main() { foreach (D d in F()) { d(); } Console.WriteLine("-------"); foreach (D d in G()) { d(); } } } }