有关于枚举数据类型的值

zou19820704 2005-10-28 01:04:32
我现在得到一个数据是整数0 - 6 之间,我想自己定义一个枚举,假如这个数是5 的话,我就想让窗体标题显示“星期五”。类推,不想用select case 或者 if elseif等方法,我觉得要是我经常需要判断的话,这样case ,case 好麻烦哦!
Public Enum EnumType
星期一 = 1
星期二 = 2
星期三 = 3
星期四 = 4
星期五 = 5
星期六 = 6
星期日 = 0
End Enum

End Enum
Dim Week As EnumType
Dim x As Integer
x的范围是0 to 6
现在我假如知道x = 5
我可以直接知道是“星期五” 么?

兄弟帮我解决这个小问题吧



...全文
283 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zou19820704 2005-11-04
  • 打赏
  • 举报
回复
大哥 ,既然问了就要多点答案嘛,摆脱,还有什么高招么》?求大哥大姐们了
zou19820704 2005-11-04
  • 打赏
  • 举报
回复
其实俺也不晓得这样是不可实现的呀!
bbhere 2005-11-04
  • 打赏
  • 举报
回复
呵呵,谁让你问了一个没答案的问题呢
zou19820704 2005-11-04
  • 打赏
  • 举报
回复
好不容易有一个问题要问,居然是没有答案的问题!
Summer006 2005-11-04
  • 打赏
  • 举报
回复
不大可能。这个涉及到编程中的“反射机制”问题。
就目前众多的编程语言来说,都没有真正实现这个。

你要的效果是:由枚举值获得枚举名称

类似的效果还有:在过程内获取过程名;
select case AAA
case BBB: XXXXXXXX
在XXXX 部分获取AAA和BBB的值。

类内部获取类名、从这个类申明的实例名称。
。。。。

目前vb来说,都不可能
zou19820704 2005-11-04
  • 打赏
  • 举报
回复
dengdai
flyingZFX 2005-10-31
  • 打赏
  • 举报
回复
好办法,呵呵,同意 狼行天下的方法。
northwolves 2005-10-29
  • 打赏
  • 举报
回复
x = getvat


Me.BackColor = Array(vbRed, vbWhite, vbBlue, vbYellow)(x)
zou19820704 2005-10-29
  • 打赏
  • 举报
回复
谢谢楼上的兄弟,以后我还是说的不要简单化了,我的本来目的是
我用winsock接到一个整数数据0 - 6,要么是0 要么是1。
发送接收商量好了,0 代表红色,1 代表白色.................我把我着边的背景色改为接收到的色彩。
Public Enum EnumType
vbred = 0
.
.
.
.
.
End Enum
Dim x s EnumType
GetVat 是接收到的整数,0 or 1 or 2 or 3 or 6
'this GetVat = 0
x =GetVat


Form1.BackColor = x
这样我想实现背景颜色是红色!
还希望各位高手帮忙解答解答呀
rainstormmaster 2005-10-28
  • 打赏
  • 举报
回复
//现在我假如知道x = 5
我可以直接知道是“星期五” 么?

不会,是否使用枚举数据类型对你的输出结果没有影响
faysky2 2005-10-28
  • 打赏
  • 举报
回复
WeekdayName更方便
northwolves 2005-10-28
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim x As Integer
x = 5
MsgBox WeekdayName(x, , vbMonday)
End Sub


MSDN:
-------------------------------------------------------------------

WeekdayName函数


描述

返回一个字符串,表示一星期中的某天。

语法

WeekdayName(weekday, abbreviate, firstdayofweek)

WeekdayName函数语法有如下几部分:

部分 描述
weekday 必需的。数字值,表示一星期中的某天。该数字值要依赖于firstdayofweek设置中的设置值来决定。
abbreviate 可选的。Boolean值,表示星期的名称是否被缩写。如果忽略该值,缺省值为False,表明星期的名称不能被缩写。
firstdayofweek 可选的。数字值,表示一星期中第一天。关于其值,请参阅“设置值”部分。


设置值

firstdayofweek参数值如下:

常数 值 描述
vbUseSystem 0 使用本国语言支持 (NLS) API设置值。
vbSunday 1 星期日(缺省)。
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

northwolves 2005-10-28
  • 打赏
  • 举报
回复
vb 内置函数 weekdayname

Private Sub Command1_Click()
Dim x As Integer
x = 5
MsgBox WeekdayName(x + 1)
End Sub
ineedchrist 2005-10-28
  • 打赏
  • 举报
回复
我没有vb的开发环境,不过,凭经验,我没有考虑出用枚举而不用判断的解决方法。经验告诉我,用数组是最快的。
zou19820704 2005-10-28
  • 打赏
  • 举报
回复
用数组也是一个很方便的东西哦,呵呵
那么用枚举类型还有商量么?既然问了,就顺便看看枚举方法吧,谢谢楼上
ineedchrist 2005-10-28
  • 打赏
  • 举报
回复
用数组不就完了!
dim arrDay(6) as string
dim iDay as integer
arrDay(1)="星期一"
arrDay(2)="星期二"
arrDay(3)="星期三"
arrDay(4)="星期四"
arrDay(5)="星期五"
arrDay(6)="星期六"
arrDay(0)="星期日"

msgbox arrDay(iDay)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧