Csharp基础教学
枚举
知识点一:基本概念
1.枚举是什么?
- 枚举是一个比较特别的存在,他是一个被命名的整形常量的集合,一般用它来表示状态、类型等等
2.声明枚举和声明枚举变量
- 注意:声明枚举和声明枚举变量是两个概念
- 声明枚举:相当于是创建一个自定义的枚举类型
- 声明枚举变量:使用声明的自定义枚举类型创建一个枚举变量
3.声明枚举的语法
//命名规范:通常是以"E"或者"E_"开头作为枚举变量的命名
enum E_自定义枚举名
{
自定义枚举名,//枚举中包裹的整形常量,第一个默认值为0,下面的依次增加1
自定义枚举名1,
自定义枚举名2,
自定义枚举名3,
}
知识点二:枚举在哪里声明
- 一般声明在namespace(命名空间)语句块中(常用)
- 也可以声明在class(类)或者struct(结构体)语句块中(不常用)
- 注意:枚举不能在函数语句块中声明,否则会报错
知识点三:枚举的使用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
enum E_Type
{
A,
B,
C
}
class Program
{
static void Main(string[] args)
{
//声明枚举变量
E_Type type = E_Type.B;
//枚举和switch是天生一对,编译器会给你自动补全
switch (type)
{
case E_Type.A:
Console.WriteLine("处理A的逻辑");
break;
case E_Type.B:
Console.WriteLine("处理B的逻辑");
break;
case E_Type.C:
Console.WriteLine("处理C的逻辑");
break;
default:
break;
}
}
}
}
知识点四:枚举的类型转换
1.枚举和int相互转换
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
enum E_Type
{
A,
B,
C
}
class Program
{
static void Main(string[] args)
{
E_Type type = E_Type.A;
int i = 1;
//将枚举转换为整形
i = (int)type;
Console.WriteLine(i);//0
//将整形转换为枚举
//注意:整形必须是枚举值对应的整形
i = 2;
type = (E_Type)i;
Console.WriteLine(type);//C
}
}
}
2.枚举和字符串之间的相互转换
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
enum E_Type
{
A,
B,
C
}
class Program
{
static void Main(string[] args)
{
E_Type type = E_Type.B;
//将枚举转为字符串
string str = type.ToString();
Console.WriteLine(str);//B
//将字符串转为枚举
//注意:字符串必须是枚举值
type = (E_Type)(Enum.Parse(typeof(E_Type), "A"));
Console.WriteLine(type);//A
}
}
}
知识点五:枚举的作用
-
在游戏开发中,对象很多的时候,会有许多的状态,比如玩家有一个动作状态,我们需要用一个变量或者标识来表示当前玩家处于的是哪种状态,综合考虑 可能会使用int来表示他的状态,1行走 2待机 3跑步 4跳跃…等等
-
枚举可以帮助我们清晰的分清楚状态的含义