vb.net 教程 1-12 枚举

当一个变量有几种可能的取值(整数值,包括负数)时,可以将它定义为枚举类型。
枚举只能是整数类型Byte、Integer、Long等,不能是其他类型,如single、double等
个人觉得枚举作用是管理和使用常量,其中的每一个值更好的是用来表示一种状态,其次用文字来表示这种状态,比数字更直观。
常见的枚举例如星期几,在下面将会说到。
.net中很多控件的属性都用到枚举,以ComboBox的属性DropDownStyle为例,DropDownStyle是一个ComboBoxStyle枚举值:
    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
新建一个控制台程序,输入以下代码:
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

当输入的是整数的时候,代码会判断是星期几或者是错误的日期,当输入不是整数的时候,代码会提示输入错误并结束。
运行结果:

当一个枚举中有多个状态同时存在的时候,通常使用0、1、2、4、8、16……来定义。例如文件属性

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

当文件属性既只读又是隐藏的时候,那么该文件的属性等于3(1+2),当文件属性包含只读、隐藏、系统的时候,该文件属性为7(1+2+4)。

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看vb.net 教程 目录

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个健康类的公众号,欢迎关注
小青桔健康