我正在定义一个枚举,它最终可能被用作数组下标,如下所示……
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将根据需要进行放大。
我的问题是:我应该这样做吗?如果不是,你会有什么建议?
发布于 2011-04-11 18:29:39
实践是我们使用像这样的声明
Public Enum MY_ENUM
THIS_ENUM_VALUE = 1
THAT_ENUM_VALUE
THE_OTHER_ENUM_VALUE
MAXIMUM_ENUM_VALUE
End Enum你甚至不需要编辑last声明:)当然你的数组比需要的多了一个元素,但我觉得这不是什么大问题。
发布于 2011-04-11 21:27:58
注意,在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发布于 2011-04-11 18:28:34
我认为这就是前进的方向。如果您按照所述操作,则可以在不破坏代码的情况下扩展枚举。
我看到的唯一需要做的事情是通知其他使用您的代码声明基于枚举的数组的人使用MAXIMUM_ENUM_VALUE而不是他们添加的枚举值(在本例中为THE_OTHER_ENUM_VALUE)。
https://stackoverflow.com/questions/5619441
复制相似问题