C# 教程
/ 枚举
枚举
C# 枚举
枚举(enum
)是一种特殊的“类”,表示一组常量(不可更改/只读变量)。
要创建一个 enum
,请使用 enum
关键字(而不是 class
或 interface
),并使用逗号分隔枚举项:
实例
enum Level { Low, Medium, High }
您可以使用点语法来访问枚举项:
Level myVar = Level.Medium; Console.WriteLine(myVar);
提示:Enum 是 “enumerations” 的缩写,意为“逐一列举”。
类内的枚举
您也可以在类内部定义枚举:
实例
class Program { enum Level { Low, Medium, High } static void Main(string[] args) { Level myVar = Level.Medium; Console.WriteLine(myVar); } }
输出将是:
Medium
枚举值
默认情况下,枚举的第一项值为 0。第二项值为 1,依此类推。
要从项目中获取整数值,您必须显式地将项目转换为 int
:
实例
enum Months { January, // 0 February, // 1 March, // 2 April, // 3 May, // 4 June, // 5 July // 6 } static void Main(string[] args) { int myNum = (int) Months.April; Console.WriteLine(myNum); }
输出将是:
3
您也可以为自己的枚举值赋值,后续的项将相应地更新它们的数字:
实例
enum Months { January, // 0 February, // 1 March=6, // 6 April, // 7 May, // 8 June, // 9 July // 10 } static void Main(string[] args) { int myNum = (int) Months.April; Console.WriteLine(myNum); }
输出将是:
7
Switch 语句中的枚举
枚举经常用在 switch
语句中来检查相应的值:
实例
enum Level { Low, Medium, High } static void Main(string[] args) { Level myVar = Level.Medium; switch(myVar) { case Level.Low: Console.WriteLine("Low level"); break; case Level.Medium: Console.WriteLine("Medium level"); break; case Level.High: Console.WriteLine("High level"); break; } }
输出将是:
Medium level
为什么以及何时使用枚举?
当您有一组不会更改的值时,例如月份的天数、星期几、颜色、一副扑克牌等,就应该使用枚举。