C#枚举


枚举类型是一种独特的值类型,用于声明一组命名的常量
enum Color
{
 Red,
 Green,
 Blue
}
每个枚举类型都有相应的整型,可以显示的声明为byte,short,long
默认为int
enum Color: long
{
 Red,
 Greeen,
 blue
}
多个枚举成员可以共享相同的关联值。示例:

enum Color

{

  Red,

  Green,

  Blue,

  Max = Blue

}

显示了一个枚举,其中的两个枚举成员(B1ue和Max)具有相同的关联值。

可以隐式地或显式地对枚举成员的关联值进行赋值。如果枚举成员的声明中具有常量表达式初始值设定项,

则该常量表达式的值(隐式地转换为枚举的基础类型)就是该枚举成员的关联值。如果枚举成员的声明中没

有初始值设定项,则将按下面的规则隐式地设置它的关联值:

— 如果枚举成员是枚举类型中声明的第一个枚举成员,则它的关联值为零。

— 否则,枚举成员的关联值将通过将前一个枚举成员(按照文本顺序)的关联值加1得到。这样增加后的值

必须在基础类型可表示的值的范围之内;否则,将发生编译时错误。
System.Enum类型
System.Enum类型是所有枚举类型的抽象基类(该类型不同于枚举类型的基础类型),并且在任何枚举类型

中都可以使用继承自System.Enum的成员。从任何枚举类型到System.Enum都存在装箱转换,并且从

System.Enum到任何枚举类型都存在拆箱转换。

注意,System.Enum本身并不是枚举类型。相反,它是一个类类型,所有枚举类型都派生自该类型。

System.Enum类型继承自System.ValueType类型(参见4.1.1小节),而后者又继承自object类型。在运行时

, System.Enum类型的值可以是null,或对任何枚举类型的已装箱值的引用。

每个枚举类型都定义一个独特的类型;在枚举类型和整型之间或在两个枚举类型之间进行转换时,需要使用

显式枚举转换。枚举类型的值域并不受它的枚举成员限制。具体来讲,一个枚举的基础类型的任何一个值都

可以强制转换到该枚举类型,并成为该枚举类型的一个独特的有效值。

枚举成员的类型为包含它们的枚举类型(出现在其他枚举成员初始值设定项中时除外)。在枚举类型E中声

明并且关联值为v的枚举成员的值为(E)v。
每个枚举类型都自动派生自System.Enum类(而该类又派生自System.ValueType和object)。因此,该类的

继承方法和属性可用于枚举类型的值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#枚举(enum)是一种特殊的数据类型,它用于定义一组相关的常量值。枚举定义了一组取值范围,并且这些取值范围都有一个名称,便于程序的使用。 枚举的定义格式如下: ``` enum 枚举名称 { 枚举项1, 枚举项2, 枚举项3, …… } ``` 其枚举名称是枚举类型的名称,枚举项是枚举类型的取值范围。例如: ``` enum WeekDays { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } ``` 上面的代码定义了一个WeekDays枚举类型,取值范围为星期一到星期日。 枚举类型的值可以直接使用枚举项来表示,例如: ``` WeekDays day = WeekDays.Monday; ``` 枚举类型的值也可以转换为整型,例如: ``` int dayValue = (int)WeekDays.Monday; ``` 在枚举,每个枚举项都有一个默认的整型值,从0开始递增。如果需要给枚举项指定一个特定的值,可以使用赋值语句,例如: ``` enum WeekDays { Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } ``` 上面的代码,Monday的值为1,后面的枚举项的值依次递增,依次为2、3、4、5、6、7。 枚举类型还可以使用位标志,允许同时包含多个枚举项的值。例如: ``` [Flags] enum FileAccess { None = 0, Read = 1, Write = 2, ReadWrite = Read | Write } ``` 上面的代码,FileAccess枚举类型使用了Flags属性,表示允许以位标志的方式组合多个枚举项的值。其,None的值为0,Read的值为1,Write的值为2,ReadWrite的值为3(即1和2的按位或)。 以上就是C#枚举的基本讲解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值