VB6中作为数组下标的枚举常量
我正在定义一个枚举,它可能最终被用作数组下标,如下所示VB6中作为数组下标的枚举常量,vb6,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 将根据
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
将根据需要进行放大
我的问题是:我应该这样做吗?如果不应该,你会有什么建议?我认为这是一条路。如果您按照概述的方式操作,则可以在不破坏代码的情况下扩展枚举
我看到需要做的唯一一件事是通知使用您的代码基于枚举声明数组的其他人使用
最大枚举值
,而不是他们添加的枚举值(在本例中,其他枚举值
)
Public Enum MY_ENUM
THIS_ENUM_VALUE = 1
THAT_ENUM_VALUE
THE_OTHER_ENUM_VALUE
MAXIMUM_ENUM_VALUE
End Enum
您甚至不需要编辑上一个声明:)请确保数组的长度比需要的长度长一个元素,但这并不是什么大问题。请注意,在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
看起来您正在二维数组的不同列中存储不同的数据?可能您应该使用结构(
Type
)或对象(Class
)来代替?@MarkJ,谢谢您的提示,但我只是将这些枚举用作数组索引;例如,myarray(FRONT)
和myarray(BACK)
比myarray(1)
和myarray(2)
更好。在这种情况下,为什么不myarray(LBound(myarray))
和myarray(UBound(myarray))
?我仍然不明白枚举的必要性——当然可能是我