测试从类引用(元类)变量中的类是否为TMyClass。

5
我想知道从类引用所创建的对象是否属于特定类或其子类之一。
换句话说,我想要一个布尔表达式,例如:
var is TMyClass

但是当var被替换为涉及类引用变量的表达式时,情况就有些棘手了。听起来很简单,但让我完全不知所措。

我可以创建一个实例变量:var := classRefVar.Create,测试它,然后销毁它,但这是一个巨大的开销。

奇怪的是,编译器不允许我这样做。

classRefVar(nil) is TMyClass

但是看似语法相同,实际上毫无用处。

TMyClass(nil) is TMyClass

显然,这个表达式
classRefVar = TMyClass

这不好,因为classRefVar可能指向TMyClass的一个子类。

当我看到答案时,我期待着自己会后悔...

1个回答

8

简单:

ClassRefVar.InheritsFrom(TMyClass)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接