public abstract class EntityBase { ... } public interface IFoobar { void Foo(int x) where T : EntityBase, new(); } public interface IFoobar<
You can do one of two things:
Do a run-time check and throw an exception:
if (typeof(T) != typeof(U)) throw Exception("Not the same type");
As others have stated, perhaps you need to rethink the way you are designing your interfaces.