枚举常量作为VB6中的数组下标

时间:2011-04-11 09:41:12

标签: vb6

我正在定义一个枚举,最终可能会像这样用作数组下标......

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

将根据需要进行扩大。

我的问题是:我应该这样做,如果没有,你会建议什么?

3 个答案:

答案 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

你甚至不需要编辑最后一个声明:)当然你的数组元素比需要的长一个元素,但恕我直言,这不是大问题。