4

我想知道从类引用创建的对象是特定类的实例还是它的任何后代。

换句话说,我想要一个布尔表达式,例如

var is TMyClass

但是其中 var 被替换为涉及类引用变量的表达式。这听起来很容易,但让我完全难住了。

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

奇怪的是,编译器不会让我有

classRefVar(nil) is TMyClass

但对看似相同但无用的句法感到满意

TMyClass(nil) is TMyClass

显然,表达式

classRefVar = TMyClass

不好,因为 classRefVar 可能引用 TMyClass 的后代。

当我看到答案时,我期待着踢自己......

4

1 回答 1

7

简单的:

ClassRefVar.InheritsFrom(TMyClass)
于 2011-03-18T13:51:27.667 回答