C# 枚举

枚举是直接在命名空间、类或结构中使用 enum 关键字定义的。所有常量名都可以在大括号内声明,并用逗号分隔。下面定义了工作日的枚举。

示例:定义一个枚举

enum WeekDays

{

 Monday,

 Tuesday,

 Wednesday,

 Thursday,

 Friday,

 Saturday,

 Sunday

}
上面,WeekDays枚举在每行中声明成员,每行用逗号分隔。

枚举值
如果未将值分配给枚举成员,则编译器将在默认情况下为每个成员分配整数值(从零开始)。枚举的第一个成员将为0,并且每个连续枚举成员的值将增加1。

示例:默认枚举值

enum WeekDays

{

 Monday,     // 0

 Tuesday,    // 1

 Wednesday,  // 2

 Thursday,   // 3

 Friday,     // 4

 Saturday,   // 5

 Sunday      // 6

}
可以为枚举成员分配不同的值。枚举成员的默认值的更改将自动按顺序向其他成员分配增量值。

示例:为枚举成员分配值

enum Categories

{

 Electronics,    // 0

 Food,           // 1

 Automotive = 6, // 6

 Arts,           // 7

 BeautyCare,     // 8

 Fashion         // 9

}
您甚至可以为每个成员分配不同的值。

示例:为枚举成员分配值

enum Categories

{

 Electronics = 1,  

 Food = 5, 

 Automotive = 6, 

 Arts = 10, 

 BeautyCare = 11, 

 Fashion = 15,

 WomanFashion = 15

}
枚举可以是任何数字数据类型,例如 byte,sbyte,short,ushort,int,uint,long 或 ulong。但是,枚举不能为字符串类型。

在 enum 名称后指定类型为:type。下面定义了字节 enum。

示例:字节枚举

enum Categories: byte

{

 Electronics = 1,  

 Food = 5, 

 Automotive = 6, 

 Arts = 10, 

 BeautyCare = 11, 

 Fashion = 15

}
访问一个枚举
可以使用点语法: enum.member 访问枚举

示例:访问枚举

enum WeekDays

{

 Monday, 

 Tuesday,

 Wednesday,

 Thursday, 

 Friday, 

 Saturday,

 Sunday 

}

Console.WriteLine(WeekDays.Monday); // 星期一

Console.WriteLine(WeekDays.Tuesday); // 星期二

Console.WriteLine(WeekDays.Wednesday); // 星期三

Console.WriteLine(WeekDays.Thursday); // 星期四

Console.WriteLine(WeekDays.Friday); // 星期五

Console.WriteLine(WeekDays.Saturday); // 星期六

Console.WriteLine(WeekDays.Sunday); // 星期日
转换枚举
从枚举类型转换为其基础整数类型需要显式强制转换。

示例:枚举转换

enum WeekDays

{

 Monday, 

 Tuesday,

 Wednesday,

 Thursday, 

 Friday, 

 Saturday,

 Sunday 

}

Console.WriteLine(WeekDays.Friday); //输出:星期五

int day = (int) WeekDays.Friday; // 枚举到int的转换

Console.WriteLine(day); //输出:4

var wd = (WeekDays) 5; // 从int到枚举的转换

Console.WriteLine(wd);//输出:星期六
enum是一个抽象类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值