我想知道从类引用所创建的对象是否属于特定类或其子类之一。
换句话说,我想要一个布尔表达式,例如:
显然,这个表达式
换句话说,我想要一个布尔表达式,例如:
var is TMyClass
但是当var被替换为涉及类引用变量的表达式时,情况就有些棘手了。听起来很简单,但让我完全不知所措。
我可以创建一个实例变量:var := classRefVar.Create,测试它,然后销毁它,但这是一个巨大的开销。
奇怪的是,编译器不允许我这样做。
classRefVar(nil) is TMyClass
但是看似语法相同,实际上毫无用处。
TMyClass(nil) is TMyClass
显然,这个表达式
classRefVar = TMyClass
这不好,因为classRefVar可能指向TMyClass的一个子类。
当我看到答案时,我期待着自己会后悔...