【发布时间】:2017-06-09 08:17:42
【问题描述】:
是否可以像这样创建条件定义:
{$if typeof(TNode) = record}
type PNode = ^TNode;
{$else}
type PNode = TNode;
{$end}
我为什么要这个?
对于特定问题,我在使用 class 和 record 之间交替使用。
出于速度原因,我想使用记录,但为了方便也想使用class。
出于这个原因,我在两者之间切换。
显然我可以添加一个{$define} 语句,但如果能够自动执行它会很好。
【问题讨论】:
-
无论如何我都会使用 {$define} 方法,因为我想同时切换记录/类定义。这对我来说似乎更简单。
-
不,据我所知这是不可能的。但我很想被证明是错误的。
-
这怎么可能奏效呢?
PNode^.SomeField如果它是一个记录指针,则它是有效的,但对于类引用来说是无意义的。当然,这不是一个普遍有效的替代。 -
@J...,如果是记录指针,您还可以编写
PNode.SomeField,如果 PNode 是一个类,它也会编译。 -
您在记录中缺少什么样的便利?你不可能是指继承之类的吧?
标签: delphi compiler-directives