C# - 枚举类型
本文关键字:类型 枚举 | 更新日期: 2023-09-12 17:38:16
在 C# 中,enum
(或枚举类型)用于将常量名称分配给一组数字整数值。
它使常量值更具可读性,例如,当引用一周中的某一天时,WeekDays.Monday
比数字 0 更具可读性。
enum
是使用 enum
关键字直接在命名空间、类或结构中定义的。
所有常量名称都可以在大括号内声明,并用逗号分隔。
下面定义了工作日的enum
。
Example: Define an Enum
enum WeekDays
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
上面,WeekDays
枚举在每行中声明成员,用逗号分隔。
枚举值
如果未将值分配给enum
成员,则编译器会将整数值分配给默认情况下从零开始的每个成员。
enum
的第一个成员将为 0,并且每个连续枚举成员的值增加 1。
Example: Default Enum Values
enum WeekDays
{
Monday, // 0
Tuesday, // 1
Wednesday, // 2
Thursday, // 3
Friday, // 4
Saturday, // 5
Sunday // 6
}
您可以为枚举成员分配不同的值。 枚举成员默认值的更改将自动按顺序将增量值分配给其他成员。
Example: Assign Values to Enum Members
enum Categories
{
Electronics, // 0
Food, // 1
Automotive = 6, // 6
Arts, // 7
BeautyCare, // 8
Fashion // 9
}
您甚至可以为每个成员分配不同的值。
Example: Assign Values to Enum Members
enum Categories
{
Electronics = 1,
Food = 5,
Automotive = 6,
Arts = 10,
BeautyCare = 11,
Fashion = 15,
WomanFashion = 15
}
枚举可以是任何数字数据类型,例如字节、字节、短、短、整、长或长。 但是,枚举不能是字符串类型。
将枚举名称后面的类型指定为 : type
。下面定义了字节枚举。
Example: byte Enum
enum Categories: byte
{
Electronics = 1,
Food = 5,
Automotive = 6,
Arts = 10,
BeautyCare = 11,
Fashion = 15
}
访问枚举
可以使用点语法访问enum
:enum.member
Example: Access Enum
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
类型转换为其基础整型类型。
Example: Enum Conversion
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
是一个抽象类。 了解有关枚举类成员的更多信息 这里.