枚举:
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。
如果公司让你写一个电话分机的程序,当客户打电话到
前台后实现自动转接的功能,用户拨打分机号
900
转到人力部,
拨打分机号
800
转到市场部
……
考虑一下,你会怎么去实现呢?
你可能会想到使用
switch...case
语句去实现这个功能,如下
代码:
int phoneNum = int.Parse (Console.ReadLine ());
switch (phoneNum)
{
//像这种900的写法,属于硬编码,在程序中应尽杜绝!!!
case 900:
{
// 人力部
do Something break;
}
//万一那天你离职了,这段断码需要别人花很大的时间才能读懂
case 800:
{
// 市场部
do somethind break;
}
//.......
}
为了避免上面的问题发生,我们今天将学习枚举!可以 使用 enum 关键字来声明一种枚举类型 ,它的值被限制 在一些列符号名称中。
声明枚举类型:
声明枚举类型: enum 枚举名 { 枚举值 1 ,枚举值 2....}例:enum Season{Spring,Summer,Fall,Winter}在内部,一个枚举为每个元素都关联了一个整数值。默认情况下,编号从 0 开始,它代表第一个元素,一个每个元素的编号都递增1。
- enum_name 指定枚举的类型名称。
- Spring 是一个用逗号分隔的标识符列表。
实例:
using System;
public class EnumTest
{
enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
static void Main()
{
int x = (int)Day.Sun;
int y = (int)Day.Fri;
Console.WriteLine("Sun = {0}", x);
Console.WriteLine("Fri = {0}", y);
}
}
当上面的代码被编译和执行时,它会产生下列结果: Sun = 0 Fri = 5
使用枚举 :
枚举类型的变量只有赋值之后才能使用。只能将有效的值赋 给一个枚举变量。Season colorful = Season.Fall;Console.WriteLine(colorful);// 输出 “Fall”不同枚举类型的直接量可以同名
在内部,一个枚举为每个元素都关联了一个整数值。默认情况下,编号从0 开始,它代表第一个元素,以后每个元素的编号都递增 1 。当然,我们也可以自定义默认值,如下:enum Season{Sprin 1 g=1,Sum 2 mer,Fa 3 ll,Win 4 ter}另外允许为多个枚举直接量指定同一个基础值enum Senson{Spring=1,Sumber=1,Fall,Winter}
对一个枚举变量执行数学运算,会改变这个变量的内部整数 值,输出该变量时,会输出对应的枚举常量值。
枚举总结:
1. 枚举类型可以起到 自注释 、规范的作用,让程序显示的更清晰。2 .enum 是一个声明枚举类型的关键字,我们不能用它去声明一个枚举变量。3. 在游戏开发中, 通常用枚举类型来表示状态机 。(状态机可以理解为游戏的状态,比如:游戏暂停、游戏结束等。)