Проверьте, является ли класс из переменной ссылки на класс (метакласса) TMyClass
Я хочу знать, является ли объект, который будет создан из ссылки на класс, экземпляром определенного класса или любого из его потомков.
Другими словами, я хочу логическое выражение, такое как
var is TMyClass
но где var заменяется выражением, включающим переменную ссылки на класс. Звучит легко, но меня совсем озадачило.
Я мог бы создать экземпляр var:= classRefVar.Create, протестировать его, а затем уничтожить, но это огромные накладные расходы.
Как ни странно, компилятор не даст мне
classRefVar(nil) is TMyClass
но доволен, казалось бы, синтаксически эквивалентным, но бесполезным
TMyClass(nil) is TMyClass
Очевидно, выражение
classRefVar = TMyClass
не годится, потому что classRefVar может ссылаться на потомка TMyClass.
Я ожидаю, чтобы ударить себя, когда я вижу ответ...