Как проверить, наследует ли class другой class, не создавая его?

Предположим, у меня есть class, который выглядит так:

class Derived : // some inheritance stuff here { } 

Я хочу проверить что-то подобное в моем коде:

 Derived is SomeType; 

Но выглядит так, как нужно оператору. Производится быть переменной типа Dervied, а не Derived. Я не хочу создавать объект типа Derived.
Как я могу убедиться, что Derived наследует SomeType не SomeType его?

PS Если это помогает, я хочу что-то вроде того, что делает ключевое слово с дженериками.
РЕДАКТИРОВАТЬ:
Подобно этому ответу, но он проверяет объект. Я хочу проверить сам class.

Чтобы проверить назначение, вы можете использовать метод Type.IsAssignableFrom :

 typeof(SomeType).IsAssignableFrom(typeof(Derived)) 

Это будет работать так, как вы ожидаете для отношений типа, отношений наследования и реализации интерфейса, но не тогда, когда вы ищете «назначаемость» для явных / неявных операторов преобразования.

Чтобы проверить строгое наследование, вы можете использовать Type.IsSubclassOf :

 typeof(Derived).IsSubclassOf(typeof(SomeType)) 

Попробуй это

 typeof(IFoo).IsAssignableFrom(typeof(BarClass)); 

Это скажет вам, BarClass(Derived) ли BarClass(Derived) IFoo(SomeType) или нет

  • Есть ли способ ссылаться на текущий тип с переменной типа?
  • Как проверить соответствие типа переменной Тип, хранящийся в переменной
  • make arrayList.toArray () возвращает более конкретные типы
  • Тип аргумента для сигнала и слота Qt, имеет ли значение задание отступников?
  • unsigned short в java
  • Почему Java API использует int вместо короткого или байтового?
  • Условный оператор не может действовать неявно?
  • Взаимодействие Java Raw Type и generics
  • Вопрос о поведении C для неподписанного целого нижнего streamа
  • Тип возврата '?:' (Тернарный условный оператор)
  • Создайте словарь Swift, где ключ «Тип»?
  • Давайте будем гением компьютера.