C#的枚举(Enum)是什么?如何为一组常量命名?

枚举是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
}

也可以指定不同的基础类型,比如 bytelong

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
}

基本上就这些。枚举让常量更有意义,也让代码更清晰。合理使用能显著提升程序的可维护性。