首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >枚举常量作为VB6中的数组下标

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

Stack Overflow用户
提问于 2011-04-11 17:41:12
回答 3查看 2.2K关注 0票数 2

我正在定义一个枚举,它最终可能被用作数组下标,如下所示……

代码语言:javascript
复制
Public Enum MY_ENUM
    THIS_ENUM_VALUE = 1
    THAT_ENUM_VALUE
    THE_OTHER_ENUM_VALUE
    MAXIMUM_ENUM_VALUE = THE_OTHER_ENUM_VALUE
End Enum

其原理是,任何添加另一个枚举的人都将更正最大枚举值和定义为

代码语言:javascript
复制
Dim my_array(MAXIMUM_ENUM_VALUE) As Integer

将根据需要进行放大。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-11 18:29:39

实践是我们使用像这样的声明

代码语言:javascript
复制
Public Enum MY_ENUM
    THIS_ENUM_VALUE = 1
    THAT_ENUM_VALUE
    THE_OTHER_ENUM_VALUE
    MAXIMUM_ENUM_VALUE
End Enum

你甚至不需要编辑last声明:)当然你的数组比需要的多了一个元素,但我觉得这不是什么大问题。

票数 0
EN

Stack Overflow用户

发布于 2011-04-11 21:27:58

注意,在VB6中使用“隐藏枚举值”也是相当典型的,如下所示:

代码语言:javascript
复制
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

你可以把这个和其他的建议结合起来:

代码语言:javascript
复制
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
票数 4
EN

Stack Overflow用户

发布于 2011-04-11 18:28:34

我认为这就是前进的方向。如果您按照所述操作,则可以在不破坏代码的情况下扩展枚举。

我看到的唯一需要做的事情是通知其他使用您的代码声明基于枚举的数组的人使用MAXIMUM_ENUM_VALUE而不是他们添加的枚举值(在本例中为THE_OTHER_ENUM_VALUE)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5619441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档