如何扩展枚举类型?

问题描述 投票:0回答:1

我经常需要向某些第三方枚举类型添加“默认值”,例如:

  TThirdPartyEnum = (
    eA,
    eB,
    eC
  );

我想这样定义枚举类型:

TMyEnum = (
  eA,
  eB,
  eC,
  eDefault
);

我想参考TThirdPartyEnum值以避免保持TMyEnum(每次TThirdPartyEnum值更改时都应更新)。

我尝试如下失败:

  TMyEnum = eA..High(TThirdPartyEnum) + eDefault;

  TMyEnum = (
    eA..High(TThirdPartyEnum),
    eDefault
  );

编译器是否可以理解语法?

delphi enums delphi-xe7
1个回答
0
投票

您不能扩展枚举类型。

您可能需要通过另一种方法来解决问题,可能是声明一个新的枚举类型并编写帮助程序方法以在它们之间进行映射。您可以使用记录助手的隐式强制转换运算符来提高代码的可读性,但这可能比任务证明的要复杂。

© www.soinside.com 2019 - 2024. All rights reserved.