在 Delphi 中是否可以将枚举合并为一个更大的枚举?

Ian*_*oyd 7 delphi enums delphi-xe6

Delphi 可以有枚举类型,例如:

type
   TDay = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);   // Enumeration values
Run Code Online (Sandbox Code Playgroud)

是否可以联合枚举类型:

type
   TWeekDay    = (Mon, Tue, Wed, Thu, Fri);
   TWeekendDay = (Sat, Sun);
   TDay        = (TWeekday, TWeekendDay);    //hypothetical syntax
Run Code Online (Sandbox Code Playgroud)

实际上,我需要在不破坏源代码兼容性的情况下一个大列表分解为它们实际上是不相交的项目:

type
   TWeekDay =    (Mon, Tue, Wed, Thu, Fri);
   TWeekendDay = (Sat, Sun);
   TDay =        (Mon, Tue, Wed, Thu, Fri, Sat, Sun); //identifier redeclared syntax error
Run Code Online (Sandbox Code Playgroud)

然后更改一些变量:

  • Day: TWeekday;TDay;
  • Day: TWeekendDay;TDay

这在道德上相当于严格打字。

Ian*_*oyd 1

答案是不”

但是,如果子范围是连续的,您可以使用一个解决方法:使用子范围:

TDay = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); 

TWeekDay2 = Mon..Fri; 
TWeekday = type TWeekDay2;

TWeekendDay2 = Sat..Sun;
TWeekendDay = type TWeekendDay;
Run Code Online (Sandbox Code Playgroud)