namespace N { public class TestG { public static void Foo () { } } } class NonGeneric { } class Generic { } class m { public global::NonGeneric compiles_fine (global::NonGeneric i, out global::NonGeneric o) { o = new global::NonGeneric (); return new global::NonGeneric (); } public global::Generic does_not_compile (global::Generic i, out global::Generic o) { o = new global::Generic (); return new global::Generic (); } public static void Main () { global::N.TestG.Foo (); } }