鉴于以下枚举:
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>
答案 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);