#c_sharp
Предположим есть классы
class Window1 : Window
и
class Window2 : Window1
Если я имею экземпляр класса Window2, то я легко могу определить, что он наследник
Window так
if (theWindow2 is Window) { }
А как быть, если у меня не экземпляр класса, а тип?
Первое, что пришло на ум - TheType.BaseType. Но в этом случае мне придется рекурсивно
получать базовый класс, пока не достигну нужного, либо пока базовый тип не будет равен
null. Может, есть более быстрый способ?
Ответы
Ответ 1
Type.IsSubclassOf? typeof(Window2).IsSubclassOf(typeof(Window1))Ответ 2
Используйте метод IsSubclassOf класса Type Например: Type second = typeof(SecondChild); Type first = typeof(FirstChild); bool flag = second.IsSubclassOf(first);
Комментариев нет:
Отправить комментарий