using System; public interface IHello { } public interface IFoo { IHello GetHello (); } public interface IBar : IFoo { } public class Foo : IBar, IFoo { public Hello GetHello () { return new Hello (this); } IHello IFoo.GetHello () { return new Hello (this); } public class Hello : IHello { public readonly Foo Foo; public Hello (Foo foo) { this.Foo = foo; } } } class X { public static void Main () { } }