Тип, который вы объявляете, даже не является общим.Примерно так:
class MyClass<T> : T where T : IBaseInterface
может работать при некоторых обстоятельствах (например, если вместо шаблонов .Net используются шаблоны C ++), но это просто недопустимый код C #.
I 'Я не уверен, для чего используются «метки», но интерфейс со свойством
ClassType ClassType { get; }
, где ClassType
- это enum
, может работать.