在Delphi中使用枚举的所有项目的常量

时间:2014-02-14 13:22:09

标签: delphi

是否可以在Delphi中拥有枚举类型的所有项的常量集?

type
    TItems = (
      iOne,
      iTwo,
      iThree
    );

    TItemsSet = set of TItems;

const
    SOMEITEMS: TItemsSet = [iTwo, iThree];


    ALLITEMS: TItemsSet = ?????

我希望ALLITEMS始终拥有TItems的所有成员。我宁愿让这个不变。

编辑: 什么,如果我的枚举看起来像这样:

TItems = (
  iOne = 1,
  iTwo = 2,
  iThree = 5
);

1 个答案:

答案 0 :(得分:5)

(来自评论)

[Low(T)..High(T)]适用于任何类型T,该类型小到足以用作集合,以包含可以包含在集合中的所有项目。

正如评论中所指出的,这对于问题中的枚举来说已经足够了,但一般来说,可能包括未定义为枚举一部分的常量。