C# 枚举(Enum)

在C#中,enum( 枚举类型)用于将常量名称分配给一组数字整数值。它使常量值更易读,例如,WeekDays.Monday在引用一周中的某天时,其可读性比数字0 更易读。

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

enumWeekDays{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}

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

枚举值

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

enumWeekDays{Monday,//0Tuesday,//1Wednesday,//2Thursday,//3Friday,//4Saturday,//5Sunday//6}

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

enumCategories{Electronics,//0Food,//1Automotive=6,//6Arts,//7BeautyCare,//8Fashion//9}

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

enumCategories{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。

enumCategories:byte{Electronics=1,Food=5,Automotive=6,Arts=10,BeautyCare=11,Fashion=15}

访问一个枚举

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

enumWeekDays{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);//星期日

转换枚举

从枚举类型转换为其基础整数类型需要显式强制转换。

enumWeekDays{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}Console.WriteLine(WeekDays.Friday);//输出:星期五intday=(int)WeekDays.Friday;//枚举到int的转换Console.WriteLine(day);//输出:4varwd=(WeekDays)5;//从int到枚举的转换Console.WriteLine(wd);//输出:星期六

enum是一个抽象类。

编辑于2024-05-20 12:12