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