class A { } class B { } interface ICharlie { } class Delta : ICharlie, ICharlie { static void Test (ICharlie icu, U u) { } public void World (U u, IFoo foo) { } public void Test (Foo foo) { World ("Canada", foo); } static void Main () { Test (new Delta (), new A ()); Test (new Delta (), new B ()); } } public interface IFoo { } public class Foo : IFoo, IFoo { }