using System; interface IColor { void Foo(); } class Red : IColor { public int Foo(int x) { throw new NotImplementedException(); } void IColor.Foo() { throw new NotImplementedException(); } } class Wrapper { private Red _red = new Red(); public int Foo(int x) { return _red.Foo(x); } public void Foo() { ((IColor) _red).Foo(); /* Proper method is invoked */ } }