using System; using System.Collections.Generic; interface I<in T> { } class A { static void Foo<T> (T a, IList<T> c) { } public static void Test () { Foo ("aaaa", new object[0]); } } class B { static void Foo<T> (T a, I<T> c) { } static void Test<U> (U u, I<U> x) { Foo (u, x); } } class M { public static int Main () { return 0; } }