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

  TThirdPartyEnum = (
    eA,
    eB,
    eC
  );


我想定义这样的枚举类型:

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


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

我尝试如下失败:

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

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


有编译器可以理解的语法吗?

最佳答案

您不能扩展枚举类型。

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

10-06 00:33