using System; public delegate void Simple (); public delegate Simple Foo (); class X { public void Hello (U u) { } public void Test (T t) { T u = t; Hello (u); Foo foo = delegate { T v = u; Hello (u); return delegate { Hello (u); Hello (v); }; }; Simple simple = foo (); simple (); Hello (u); } public static void Main () { X x = new X (); x.Test (3); } }