public interface IBase { void DoSomeThing(); } public interface IExtended : IBase { void DoSomeThingElse(); } public class MyClass where T: IExtended, new() { public MyClass() { T instance = new T(); instance.DoSomeThing(); } } class X { public static void Main () { } }