枚举
枚举又叫做穷举,也就是把可能出现的情况(或者值)一一列举出来,枚举类型可以起到自注释、规范的作用,让程序显示的更清晰。
可以使用enum关键字来声明枚举类型,它的值被限制在所列举出来的值中。
enum是声明一个枚举类型的关键字,不能用它声明一个枚举变量。
enum 枚举类型名{枚举值1,枚举值2,……}
enum Season{Spring,Summer,Autumn,Winter}
在内部,一个枚举为每个元素都关联了一个整数值,默认情况下编号从0开始,后面的编号根据前一个编号都递增1,Spring=0,Summer=1,Autumn=2,Winter=3
默认值:
1 using System;
2
3 namespace ConsoleApplication1
4 {
5 class Program
6 {
7 enum Season
8 {
9 Spring, //用逗号,不用分号 0
10 Summer, //1
11 Autumn, //2
12 Winter //最后一个不加逗号 3
13 }
14 static void Main(string[] args)
15 {
16 Season a = Season.Autumn; //Season作为一个类型去定义变量
17 int b = (int)a;
18 Console.WriteLine(b); //b=2
19 Console.ReadKey();
20 }
21 }
22 }
自定义默认值:
enum Season
{
Spring = 1,
Summer, //2
Autumn = 5,
Winter //6
}
允许为多个枚举指定同一个整数值
enum Season
{
Spring = 1,
Summer, //2
Autumn = 1,
Winter //2
}
对一个枚举变量执行数学运算,会改变这个枚举变量的内部整数值,输出该变量时,会输出所对应的枚举常量值:
1 using System; 2 3 namespace ConsoleApplication1 4 { 5 class Program 6 { 7 enum Season 8 { 9 Spring, 10 Summer, 11 Autumn, 12 Winter 13 } 14 static void Main(string[] args) 15 { 16 Season a = Season.Autumn; 17 Console.WriteLine(++a); 18 //++a先计算后赋值,输出结果为Winter;a++先赋值后计算,输出结果为Autumn 19 Console.ReadKey(); 20 } 21 } 22 }
在游戏开发中,通常用枚举类型来表示状态机(状态机可以理解为游戏的状态:游戏开始,游戏暂停,游戏结束)