枚举enum
枚举类型声明为一组相关的符号常数定义了一个类型名称。枚举用于“多项选择”场合,就是程序运行时从编译时已经设定的固定数目的“选择”中做出决定。
枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。例如,假设您必须定义一个变量,该变量的值表示一周中的一天。该变量只能存储七个有意义的值。若要定义这些值,可以使用枚举类型。枚举类型是使用 enum 关键字声明的。
enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
枚举实例
声明:
public enum TimeOfDay
{
Moning = 0,
Afternoon = 1,
Evening = 2,
};
使用:
public string getTimeOfDay(TimeOfDay time)
{
string result = string.Empty;
switch (time)
{
case TimeOfDay.Moning:
result = "上午";
break;
case TimeOfDay.Afternoon:
result = "下午";
break;
case TimeOfDay.Evening:
result = "晚上";
break;
default:
result = "未知";
break;
}
return result;
}
enums枚举是值类型,数据直接存储在栈中,而不是使用引用和真实数据的隔离方式来存储。
(1)默认情况下,枚举中的第一个变量被赋值为0,其他的变量的值按定义的顺序来递增(0,12,3...),因此以下两个代码定义是等价的:
- enum TrafficLight
- {
- Green,
- Yellow,
- Red
- }
- enum TrafficLight
- {
- Green = 0,
- Yellow = 1,
- Red = 2
- }
(2)enum枚举类型的变量的名字不能相同,但是值可以相同,例如:
- enum TrafficLight
- {
- Green = 0,
- Yellow = 1, // Duplicate value, OK
- Red = 1 // Duplicate value, OK
- }
(3)如果enum中的部分成员显式定义了值,而部分没有;那么没有定义值的成员还是会按照上一个成员的值来递增赋值,例如:
- enum LoopType
- {
- None, // value is 0
- Daily, // value is 1
- Weekly = 7,
- Monthly, // value is 8
- Yeayly, // value is 9
- DayGap = 15,
- WeekGap, // value is 16
- MonthGap, // value is 17
- YearGap // value is 18
- }

浙公网安备 33010602011771号