我正在做一个 Delphi 项目,在这个项目中我定义了一组特定的类,比如:
TClassA = class(TObject)
...
TClassB = class(TObject)
...
TMyClass = class(TClassA)
...
字符串
我有一个需求,即基于编译时确定的某些条件,我希望TMyClass继承TClassB。
从本质上讲,我希望能够写这样的东西:
{$IFDEF SOME_COMPILE_TIME_CONDITION}
TMyClass = class(TClassB)
{$ELSE}
TMyClass = class(TClassA)
{$ENDIF}
型
在 Delphi 中是否可以在编译时有条件地定义TMyClass的父类?如果是这样,我如何才能做到这一点?如果没有,你有什么可以建议的替代方法或替代方法吗?
2条答案
按热度按时间bjp0bcyl1#
我不确定这是否符合 * 更优雅 * 的资格,但无论如何,你可能很难找到其他的东西:
字符串
kr98yfug2#
这可能有点偏离,这取决于你想做什么,但根据我所掌握的信息,我会使用一个接口来解决这个问题。
伪代码
字符串
然后,您的后代可以调用基类的受保护方法,这些方法调用不同的实现,或者直接提供对fImplementation成员的受保护访问。