来源gpt,仅记录
在 C# 中,枚举类型(enum
)是一种值类型,它定义了一组命名的常量。枚举类型的定义通常用于表示一组具有相关性的固定值,比如星期、颜色、状态等。
1、枚举的基本语法
enum 枚举名称
{枚举值1,枚举值2,枚举值3,// ...
}
2、定义和使用枚举
enum DayOfWeek
{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
}
class Program
{static void Main(string[] args){// 定义一个变量并赋值DayOfWeek today = DayOfWeek.Monday;// 输出枚举值Console.WriteLine("Today is: " + today);// 使用枚举值进行条件判断if (today == DayOfWeek.Monday){Console.WriteLine("It's the start of the week!");}// 枚举值转换为整数int dayIndex = (int)today;Console.WriteLine("Day index: " + dayIndex);// 整数转换为枚举值DayOfWeek dayFromIndex = (DayOfWeek)4;Console.WriteLine("Day from index: " + dayFromIndex);}
}
3、自定义枚举值
你可以为枚举中的值指定整数:
enum SeverityLevel
{Low = 1,Medium = 2,High = 3,Critical = 4
}
4、枚举的特点
1)默认类型:枚举底层默认是 int
类型,但也可以显式指定为其他整型(byte
、short
等):
enum ByteEnum : byte
{A = 1,B = 2
}
2)默认值:枚举的第一个值默认是 0,后续值依次递增(如果未显式指定)。
3)强类型检查:枚举提供强类型检查,防止无效值的使用。
5、为什么默认是int型,在使用时还是需要类型转换为int?
这是因为 C# 中的 枚举类型(enum
)是一个独立的类型,虽然它的底层默认存储类型是 int
,但为了保持类型安全和可读性,C# 不允许在大多数情况下直接将枚举类型与整数类型混用。你需要显式地进行类型转换,以便开发者能明确看到并意识到这种操作的意图,避免隐式转换引发的错误或混乱。
枚举的设计初衷是为程序中的一组相关常量提供一个可读性强的标识符,而不是直接使用数字值。
DayOfWeek today = DayOfWeek.Monday;
Console.WriteLine(today); // 输出 "Monday",而不是 0