class G<T> { public T def () { return default (T); } } class C { delegate void DF (); static DF df; static void foo (object o) { } static void cf<T> () { G<T> g = new G<T> (); df = delegate { foo (g.def ()); }; } public static int Main () { cf<int> (); df (); return 0; } }