using System; interface IHello { void Print (T t); } interface Foo { IHello Test (); } class Hello : IHello, Foo { public void Print (T t) { Console.WriteLine ("Hello: {0}", t); } public IHello Test () { return new Hello (); } } class X { public static void Main () { Hello hello = new Hello (); hello.Print (5); hello.Test ().Print (3.14F); IHello foo = hello.Test (); foo.Print ("World"); } }