using System; #region 知识点二 在哪里声明枚举 // 1.在namespace中声明枚举(常用) // 2.在class中声明枚举 // 3.在struct中声明枚举 // 注意:枚举不能在函数,方法中声明 #endregion namespace 枚举 { #region 知识点一 基本概念 #region 1枚举是什么 //枚举是一个比较特别的存在 //他是一个被命名的整形常量的集合 //一般用它来表示 状态 类型 等等 #endregion #region 2声明枚举 和 声明枚举变量 //注意:声明枚举 和 声明枚举变量 是两回事 //声明枚举: 相当于是 闯将一个自定义的枚举类型 //声明枚举变量: 使用声明的自行定义枚举类型 创建一个枚举变量 #endregion #region 3声明枚举语法 // enum 枚举名 // 一般来说,枚举名以E或E_开头,作为一种默认的规范 //enum E_自定义枚举名 //{ // 自定义枚举项名字,// 这里是枚举中包裹的 整形常量 第一个默认值是0 下面会依次累加 // 自定义枚举项名字1,// 1 // 自定义枚举项名字2,// 2 //} enum E_自定义枚举名 { 自定义枚举项名字 = 5,// 第一个默认值是5 下面会依次累加 自定义枚举项名字1,// 这里会是6 自定义枚举项名字2 = 100,// 改变默认值为100 下面还会依次累加 } #endregion #endregion class Program { static void Main(string[] args) { #region 知识点三 枚举的使用 //例子-声明枚举变量 E_PlayerType playerType = E_PlayerType.Hunter; if(playerType == E_PlayerType.Warlock) { Console.WriteLine("玩家是术士"); } else if (playerType == E_PlayerType.Titan) { Console.WriteLine("玩家是泰坦"); } else if (playerType == E_PlayerType.Hunter) { Console.WriteLine("玩家是猎人"); } //枚举和switch非常配合 //甚至可以自动补全 E_MonsterType monsterType = E_MonsterType.Boss; switch (monsterType) { case E_MonsterType.Normal: Console.WriteLine("普通怪物的功能"); break; case E_MonsterType.Boss: Console.WriteLine("BOSS怪物的功能"); break; default: break; } #endregion #region 知识点四 枚举的类型转换 //1.枚举和int互转 int i = (int)playerType; Console.WriteLine(i); //2.枚举和string互转 string str = playerType.ToString(); Console.WriteLine(str); //3.字符串转枚举 //(括号强转写目标枚举类型)Enum.Parse(typeof(同样目标枚举类型), "完全一致的字符串"); playerType = (E_PlayerType)Enum.Parse(typeof(E_PlayerType), "Titan"); Console.WriteLine(playerType); #endregion #region 知识点五 枚举的作用 //在游戏开发中,对象很多的时候,会有很多状态 //比如玩家的动作状态,我们需要用变量或某种标识来表示玩家处于的是哪种状态 //如果用int来表示状态,数字的含义就不明确了 //如果用枚举来表示状态,枚举的名字就能清晰地表达出状态的含义 #endregion } } #region 例子-声明枚举 enum E_MonsterType { Normal, Boss, } enum E_PlayerType { Titan, Warlock, Hunter, } #endregion }