Files
Csharp/C#基础/Lesson1_枚举/Program.cs
T
2025-09-30 16:49:43 +08:00

117 lines
3.8 KiB
C#

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
}