Я использую оператор "is", чтобы найти определенный класс:
for(int i=0; i<screens.Count; i++){
if(screen is ScreenBase){
//do something...
}
}
Это отлично работает, особенно когда он находит любой класс, унаследованный от ScreenBase, но не базовые классы от ScreenBase.
Я хотел бы сделать то же самое, когда я знаю только Тип и не хочу создавать экземпляр класса:
Type screenType = GetType(line);
if (screenType is ScreenBase)
Но это сравнение выдает предупреждение, поскольку оно будет сравниваться с классом «Тип».
Единственная альтернатива, которую я знаю, - это сравнение с == typeof, но это будет проверять только точный тип, а не унаследованные. Есть ли способ добиться аналогичного поведения, такого как "is". оператор, но для типа, описанного Type-class?