Как проверить наследуемый тип с параметром T?
Погуглил, но ответа не нашёл, скорее всего я неправильно ставлю вопрос!
Пример кода:
public class Base {}
public class Base<T> {}
public class Base<T, E> {}
public class Test1 : Base<int> {}
public class Test2 : Base<string, int> {}
// Do<Test1>(); <- чтобы можно было такое выполнить
// Do<Test2>(); <- и такое
public void Do<T>() where T : Base, Base<_>, Base<_, _>
{
// some govnocode
}
Собственно вопрос: Реально ли в c# сделать такую проверку типа как в этом методе, не учитывая передаваемый в дженерик тип данных? То-есть, нужно чтобы классы наследуемые от Base, Base подходили к данному методу. Есть вариант сделать общий интерфейс, например, и все такое... но мне интересен именно такой вариант как в коде выше.