什么是枚举
存储下列装备时, 该如何存储? 0 表示头盔, 1 表示防弹衣, 2 表示背包
int equipType = 1;
switch (equipType)
{
case 0:
// 装备头盔
break;
case 1:
// 装备防弹衣
break;
case 2:
// 装备背包
break;
}
这样写阅读性差, 维护性差, 易出错
定义枚举类型
枚举类型是自定义类型, 这是与之前学到的数据类型最大的差别
enum 枚举名 {枚举值1, 枚举值2...}
enum EquipType
{
Helmet,// 头盔
BodyArmor,// 防弹衣
Knapsack// 背包
}
EquipType可以被认为是一种数据类型, 也可以称之为是枚举类型
枚举类型的值
枚举类型名.枚举值
例:
EquipType hel = EquipType.Helmet;// 头盔
EquipType ba = EquipType.BodyArmor;// 防弹衣
EquipType knap = EquipType.Knapsack;// 背包
枚举是一个值类型, 枚举值还可标记一个整形数字予以匹配, 默认从0开始计数
例:
EquipType.Helmet;//头盔 --> 对应0
EquipTyp.BodyArmor;//防弹衣 --> 对应1
EquipType.Knapsack;//背包 --> 对应2
枚举声明时标记数字
例: 装备类型
enum EquipType
{
Helmet = 10,// 头盔
BodyArmor = 20,//防弹衣
Knapsack//背包 --> 顺延标记,即21
}
因此, 枚举类型和整型可以进行相互的显示转换
int equipNum = (int)EquipType.Knasack;
EquipType equipType = (EquipType)1;
练习
创建枚举表示游戏的所有状态 (1表示开始游戏, 2表示暂停游戏, 0表示结束游戏)
创建枚举表示背包当中的武器, 武器包括: 步枪, 机枪, 狙击枪, 军刀.
创建部门电话号码的枚举 (其中900代表市场部, 800代表人力资源部, 700代表行政部, 701代表财务部)
// 创建枚举表示游戏的所有状态(1表示开始游戏, 2表示暂停游戏, 0表示结束游戏)
enum State //状态
{
Start = 1, // 开始
Suspend = 2, // 暂停
End = 0 // 结束
}
// 创建枚举表示背包当中的武器, 武器包括: 步枪, 机枪, 狙击枪, 军刀.
enum Weapons //武器
{
Rifle, // 步枪
MachineGun, // 机枪
Msr, // 狙击枪
Saber // 军刀
}
// 创建部门电话号码的枚举(其中900代表市场部, 800代表人力资源部, 700代表行政部, 701代表财务部)
enum Sector // 部门
{
Market = 900, // 市场部
Human = 800, // 人力资源部
Administrative = 700, // 行政部
Finance = 701 // 财务部
}
要在方法外创建, 且它是一个值类型