枚举是C#中为整数常量提供有意义名称的值类型,默认底层类型为int,成员从0开始递增;可通过显式赋值指定数值或更改基础类型,结合[Flags]可表示组合值,适用于状态、选项等固定集合,提升代码可读性与维护性。

在C#中,枚举(Enum)是一种特殊的值类型,用于为一组相关的整数常量提供有意义的名称。它让代码更易读、更安全,也更容易维护。
什么是枚举?
枚举是一种定义命名常量集合的方式。默认情况下,枚举成员的底层类型是 int,第一个成员的值为 0,后续成员依次递增。
例如,表示星期几可以用枚举来定义:
public enum DayOfWeek{
Monday, // 值为 0
Tuesday, // 值为 1
Wednesday, // 值为 2
Thursday,
Friday,
Saturday,
Sunday
}
这样就可以用 DayOfWeek.Monday 来代替数字 0,提高代码可读性。
如何为常量命名?
通过枚举,你可以为一组相关常量赋予清晰的名字。命名时建议使用大驼峰命名法(PascalCase),并确保名称具有描述性。
你还可以显式指定每个成员的值:
public enum StatusCode{
Success = 200,
NotFound = 404,
ServerError = 500
}
也可以指定不同的基础类型,比如 byte 或 long:
public enum Priority : byte{
Low = 1,
Medium = 2,
High = 3
}
枚举的使用场景和技巧
枚举适合用于状态、选项、类别等有限且固定的取值集合。
- 可以用在 switch 语句中进行逻辑判断
- 通过 Enum.Parse() 或 Enum.TryParse() 将字符串转换为枚举值
- 用 Enum.GetNames() 获取所有成员名称
- 标记枚举(使用 [Flags] 特性)可以表示组合值,适用于权限或选项组合
例如使用 [Flags]:
[Flags]public enum FileAccess
{
None = 0,
Read = 1,
Write = 2,
ReadWrite = Read | Write
}
基本上就这些。枚举让常量更有意义,也让代码更清晰。合理使用能显著提升程序的可维护性。









