枚举

枚举在什么地方适用呢?一条普遍规则是,任何使用常量的地方,例如目前用switch代码切换常量的地方。如果只有单独一个值(例如,鞋的最大尺寸,或者笼子中能装猴子的最大数目),则还是把这个任务留给常量吧。但是,如果定义了一组值,而这些值中的任何一个都可以用于特定的数据类型,那么将枚举用在这个地方最适合不过。

有没有知道VB.net 中枚举和数组的区别,我认为数组和枚举一样的,能不能举个例子说明枚举的应用?
#1楼 得分:2回复于:2008-10-17 18:15:54
枚举是值类型,数组是引用类型
#2楼 得分:2回复于:2008-10-17 18:22:18


不知道你为什么会觉得他们一样呢?
#3楼 得分:0回复于:2008-10-17 18:25:41
引用 2 楼 JeffChung 的回复:


不知道你为什么会觉得他们一样呢?
,
  • vrhero
  • (若批评不自由则赞美无意义...)
  • 等 级:
#4楼 得分:0回复于:2008-10-17 18:27:53
引用 2 楼 JeffChung 的回复:


不知道你为什么会觉得他们一样呢?

lz是火星人...鉴定完毕...
#5楼 得分:2回复于:2008-10-17 18:44:44
一个是常量的集合,一个是变量的集合.呵呵
  • cnapc
  • (明月照大江)
  • 等 级:
#6楼 得分:0回复于:2008-10-18 09:45:49
枚举对象在任一时刻只能有一个常量值,数组对象在任一时刻可以有多个值. ^-^
TOP
#7楼 得分:0回复于:2008-10-20 09:47:51
呵、我可不是什么火星人啊!我现在就是想不明白他们在应用的时候的区别,比如我现在定义了一个枚举,里面有3个值
然后呢我new这个枚举,在把他的值付给变量,这样做的话我也可以用一个数组来实现啊,我现在不明白的是枚举比数组
有那些好处呢。
#8楼 得分:5回复于:2008-10-20 10:11:43
枚举它有一个直观的名字啊
比如Color[myColor.Rad]如果用Color[2],谁看的明白呢?
还有
select case Style
case myStyles.Window
case myStyles.Linux
....

比 case 1,case 2 要明白多了

还有,比如你有一个列表list,列顺序是 ID,Name,Address...
取数是ID = list[0],Name = list[1]...那如果在Name列前插入一列Sex,那Name要改成=list[2],麻烦又容易错
如果用枚举 enum myList{ID,Address...}
取数就是ID = list[myList.ID]...那如果在Name列前插入一列Sex,只要修改enum myList{ID,Sex,Address...}不需要修改其他代码
#9楼 得分:5回复于:2008-10-20 14:21:04
引用 6 楼 cnapc 的回复:
枚举对象在任一时刻只能有一个常量值,数组对象在任一时刻可以有多个值. ^-^

这位说的对,关键点在这里啊。

枚举对象是 一个变量有一个值,数组对象是 一组值。

VB.NET code
            
            
Public Enum Enum1 First = 1 Second = 2 Three = 3 End Enum Dim e As Enum1,e_Array As Enum1( 2 ) e = Enum1.Second e_Array( 0 ) = Enum1.First e_Array( 1 ) = Enum1.Second e_Array( 2 ) = Enum1.Three

楼主看出区别了吗?
#10楼 得分:2回复于:2008-10-20 16:16:54
引用 7 楼 conggang 的回复:
呵、我可不是什么火星人啊!我现在就是想不明白他们在应用的时候的区别,比如我现在定义了一个枚举,里面有3个值
然后呢我new这个枚举,在把他的值付给变量,这样做的话我也可以用一个数组来实现啊,我现在不明白的是枚举比数组
有那些好处呢。

枚举是标签,数组是容器,不可相提并论...你见过一个标签可以变两个吗,你会拿标签和钱包比哪个好有什么区别吗...看事物要看本质...
  • wdzr_826
  • ((大鱼——舞指如歌))
  • 等 级:
#11楼 得分:2回复于:2008-10-20 16:35:09
枚举和数组完全不相干的两个概念。你问有什么区别,我甚至找不出有什么相同之处。枚举是一个定义,一个标签,是定死的。数组是一个集合,是用来存放数据的。
#12楼 得分:0回复于:2008-11-04 11:19:15
呵,听了大家的话,明白了,自己想的有些极端了,谢谢各位的解说!!谢谢~
#13楼 得分:0回复于:2010-07-28 19:23:50
我也明白了,向大家学习
#14楼 得分:0回复于:2011-04-25 09:35:51
嵌入式学习路线.pdf
TOP

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...