public class BaseClass { public void DoStuff (TInput stuff) where TInput: TSource { } } public class MyClass: BaseClass, MyInterface { public static void Main () { } } public class TInterface { } public interface MyInterface { void DoStuff (TInput stuff) where TInput: TInterface; }