【发布时间】:2011-07-18 04:40:30
【问题描述】:
我想知道将从类引用创建的对象是特定类的实例还是它的任何后代。
换句话说,我想要一个布尔表达式,例如
var is TMyClass
但其中 var 被替换为涉及类引用变量的表达式。这听起来很简单,但我完全被难住了。
我可以创建一个实例 var := classRefVar.Create,对其进行测试,然后将其销毁,但这是一个巨大的开销。
奇怪的是,编译器不让我有
classRefVar(nil) is TMyClass
但对在语法上看似相同但无用的句法感到满意
TMyClass(nil) is TMyClass
显然,表达式
classRefVar = TMyClass
不好,因为 classRefVar 可能引用 TMyClass 的后代。
当我看到答案时,我期待着踢自己......
【问题讨论】:
标签: delphi metaclass class-reference