C# 枚举类型 - Enum
在 C# 中,`enum`(或枚举类型)用于为一组数字整数值分配常量名称。它使常量值更具可读性,例如,当指代一周中的某一天时,`WeekDays.Monday` 比数字 0 更具可读性。
`enum` 使用 `enum` 关键字定义,直接在命名空间、类或结构内部。所有常量名称都可以声明在大括号内,并用逗号分隔。以下定义了表示工作日的 `enum`。
@*是值类型数据类型。*@示例:定义枚举
enum WeekDays
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
上面,`WeekDays` 枚举声明了每行用逗号分隔的成员。
枚举值
如果未给 `enum` 成员赋值,则编译器将默认从零开始为每个成员分配整数值。枚举的第一个成员将为 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。但是,枚举不能是字符串类型。
在枚举名称后使用 `: type` 指定类型。以下定义了字节枚举。
示例:字节枚举
enum Categories: byte
{
Electronics = 1,
Food = 5,
Automotive = 6,
Arts = 10,
BeautyCare = 11,
Fashion = 15
}
访问枚举
可以使用点语法访问 `enum`:`enum.member`
示例:访问枚举
enum WeekDays
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
Console.WriteLine(WeekDays.Monday); // Monday
Console.WriteLine(WeekDays.Tuesday); // Tuesday
Console.WriteLine(WeekDays.Wednesday); // Wednesday
Console.WriteLine(WeekDays.Thursday); // Thursday
Console.WriteLine(WeekDays.Friday); // Friday
Console.WriteLine(WeekDays.Saturday); // Saturday
Console.WriteLine(WeekDays.Sunday); // Sunday
转换
从 `enum` 类型转换为其底层整型需要显式转换。
示例:枚举转换
enum WeekDays
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
Console.WriteLine(WeekDays.Friday); //output: Friday
int day = (int) WeekDays.Friday; // enum to int conversion
Console.WriteLine(day); //output: 4
var wd = (WeekDays) 5; // int to enum conversion
Console.WriteLine(wd);//output: Saturday
`enum` 是一个抽象类。在此处了解有关枚举类成员的更多信息。