当一个变量有几种可能的取值(整数值,包括负数)时,可以将它定义为枚举类型。
枚举只能是整数类型Byte、Integer、Long等,不能是其他类型,如single、double等
个人觉得枚举作用是管理和使用常量,其中的每一个值更好的是用来表示一种状态,其次用文字来表示这种状态,比数字更直观。
常见的枚举例如星期几,在下面将会说到。
枚举只能是整数类型Byte、Integer、Long等,不能是其他类型,如single、double等
个人觉得枚举作用是管理和使用常量,其中的每一个值更好的是用来表示一种状态,其次用文字来表示这种状态,比数字更直观。
常见的枚举例如星期几,在下面将会说到。
.net中很多控件的属性都用到枚举,以ComboBox的属性DropDownStyle为例,DropDownStyle是一个ComboBoxStyle枚举值:
Public Enum ComboBoxStyle
Simple = 0
DropDown = 1
DropDownList = 2
End Enum
其中
Simple 指定列表始终可见,并指定文本部分可编辑。
DropDown 通过单击下箭头指定显示列表,并指定文本部分可编辑。
DropDownList 通过单击下箭头指定显示列表,并指定文本部分不可编辑。
Public Enum ComboBoxStyle
Simple = 0
DropDown = 1
DropDownList = 2
End Enum
其中
Simple 指定列表始终可见,并指定文本部分可编辑。
DropDown 通过单击下箭头指定显示列表,并指定文本部分可编辑。
DropDownList 通过单击下箭头指定显示列表,并指定文本部分不可编辑。
以星期几为例来看看枚举的定义:
Enum weekday
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
End Enum
这种情况下表示weekday是一个Integer类型,Sunday的值为0,Monday的值为1.。。。。Saturday的值为6。
等同于以下定义:
Enum weekday As Integer
Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
End Enum
当然我们还可以把其中的成员定义为一个负数,例如以下定义:
Enum weekday As Integer
Sunday = -3
Monday = 1
Tuesday
Wednesday
Thursday
Friday
Saturday
End Enum
每个成员的值依次为-3、1、2、3、4、5、6
如果按照以下定义:
Enum weekday As Integer
Sunday = 1
Monday = 3
Tuesday = 2
Wednesday
Thursday
Friday
Saturday
End Enum
每个成员的值依次为1、3、2、3、4、5、6
Enum weekday
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
End Enum
这种情况下表示weekday是一个Integer类型,Sunday的值为0,Monday的值为1.。。。。Saturday的值为6。
等同于以下定义:
Enum weekday As Integer
Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
End Enum
当然我们还可以把其中的成员定义为一个负数,例如以下定义:
Enum weekday As Integer
Sunday = -3
Monday = 1
Tuesday
Wednesday
Thursday
Friday
Saturday
End Enum
每个成员的值依次为-3、1、2、3、4、5、6
如果按照以下定义:
Enum weekday As Integer
Sunday = 1
Monday = 3
Tuesday = 2
Wednesday
Thursday
Friday
Saturday
End Enum
每个成员的值依次为1、3、2、3、4、5、6
新建一个控制台程序,输入以下代码:
Module Module1 Enum weekday As Integer Sunday = 7 Monday = 1 Tuesday Wednesday Thursday Friday Saturday End Enum Sub Main() Dim oneday As Integer Try Do While True Console.WriteLine("请输入一个数字") oneday = Integer.Parse(Console.ReadLine()) Select Case oneday Case weekday.Sunday Console.WriteLine("输入星期天") Case weekday.Monday Console.WriteLine("输入星期一") Case weekday.Tuesday Console.WriteLine("输入星期二") Case weekday.Wednesday Console.WriteLine("输入星期三") Case weekday.Thursday Console.WriteLine("输入星期四") Case weekday.Friday Console.WriteLine("输入星期五") Case weekday.Saturday Console.WriteLine("输入星期六") Case Else Console.WriteLine("输入错误的日期") End Select Loop Catch ex As Exception Console.WriteLine("输入的不是整数") Console.ReadKey() End Try End Sub End Module
运行结果:
Public Enum FileAttributes [ReadOnly] = 1 Hidden = 2 System = 4 Directory = 16 Archive = 32 Device = 64 Normal = 128 Temporary = 256 SparseFile = 512 ReparsePoint = 1024 Compressed = 2048 Offline = 4096 NotContentIndexed = 8192 Encrypted = 16384 End Enum
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看vb.net 教程 目录