我正在定义一个枚举,最终可能会像这样用作数组下标......
Public Enum MY_ENUM
THIS_ENUM_VALUE = 1
THAT_ENUM_VALUE
THE_OTHER_ENUM_VALUE
MAXIMUM_ENUM_VALUE = THE_OTHER_ENUM_VALUE
End Enum
理论上,任何添加另一个枚举的人都会更正最大枚举值和任何定义为
的数组Dim my_array(MAXIMUM_ENUM_VALUE) As Integer
将根据需要进行扩大。
我的问题是:我应该这样做,如果没有,你会建议什么?
答案 0 :(得分:4)
请注意,在VB6中使用“隐藏枚举值”也是相当典型的:
Public Enum MY_ENUM
THIS_ENUM_VALUE = 1
THAT_ENUM_VALUE
THE_OTHER_ENUM_VALUE
[_first] = THIS_ENUM_VALUE
[_last] = THE_OTHER_ENUM_VALUE
End Enum
您可以将此与其他建议结合使用:
Public Enum MY_ENUM
[_first]
THIS_ENUM_VALUE
THAT_ENUM_VALUE
THE_OTHER_ENUM_VALUE
[_last]
End Enum
Dim MyArray(MY_ENUM.[_first] To MY_ENUM.[_last]) As MY_ENUM
答案 1 :(得分:1)
我认为这是要走的路。如果按照您的方式进行操作,则可以在不破坏代码的情况下扩展枚举。
我唯一需要做的就是告知使用您的代码的其他人根据枚举来声明数组,以使用MAXIMUM_ENUM_VALUE
而不是他们添加的枚举值(在这种情况下,{{1} })。
答案 2 :(得分:0)
实践是我们使用像
这样的声明Public Enum MY_ENUM
THIS_ENUM_VALUE = 1
THAT_ENUM_VALUE
THE_OTHER_ENUM_VALUE
MAXIMUM_ENUM_VALUE
End Enum
你甚至不需要编辑最后一个声明:)当然你的数组元素比需要的长一个元素,但恕我直言,这不是大问题。