是否可以单独声明const数组项值

时间:2015-06-03 15:54:29

标签: arrays delphi const

鉴于以下枚举:

type TEnum = (teA, teB, teC);

我想声明一个TEnum的const数组,但是我发现以下数组项和枚举项之间的连接相对难以阅读和维护(显然我知道我可以详细评论并给每个项目自己的行):

const AN_ARRAY : array[TEnum] of Integer = (1, 12, 146);

有没有办法声明const数组更像这样?

const
  AN_ARRAY : array[TEnum] of Integer : 
    AN_ARRAY[teA] = 1,
    AN_ARRAY[teB] = 12,
    AN_ARRAY[teC] = 146
  ;

理想情况我想设置enum ord值而不使用数组,但这意味着我然后can't use TypeInfo来操作枚举。< / p>

2 个答案:

答案 0 :(得分:5)

没有。数组常量的索引始终是隐式的。如果您需要在相应的值旁边看到它们,请将它们包含在注释中,但要注意注释可能与实际代码不同步,编译器不会向您发出警告。

const
  AN_ARRAY : array[TEnum] of Integer = (
    1,  // teA
    12, // teB
    146 // teC
  );

答案 1 :(得分:1)

这是另一种方法:

type
  TEnum = (teA, teB, teC);

const
  teAVal = 1;
  teBVal = 12;
  teCVal = 146;

const
  AN_ARRAY : array[TEnum] of Integer = (teAVal, teBVal, teCVal);