枚举类型知识点

基本概念

枚举是什么

        枚举是一个比较特别的存在,他是一个被命名的整形常量的集合,一般用它来表示状态、类型等等。

申明枚举和申明枚举变量

        注意:申明枚举和申明枚举变量 是两个概念
        申明枚举:相当于是 创建一个自定义的枚举类型。
        申明枚举变量: 使用申明的自定义枚举类型创建一个枚举变量。

申明枚举语法

        枚举名:以E或者E_开头,作为我们的命名规范。

enum E_自定义枚举名
{
    自定义枚举项名字, //枚举中包裹的 整形常量  第一个默认值是0 下面会依次累加
    自定义枚举项名字1,//1
    自定义枚举项名字2,//2
}
enum E_自定义枚举名
{
    自定义枚举项名字 = 5, //第一个枚举项的默认值 变成5了 
    自定义枚举项名字1,// 6
    自定义枚举项名字2 = 100,
    自定义枚举项名字3,//101
    自定义枚举项名字4,//102
}

在哪里申明枚举

1.namespace语句块中(常用)。

2.class语句块中,struct语句块中。

注意:枚举不能在函数语句块中申明!!!

enum E_MonsterType
{
    Normal,//0

    Boss,//1
}

enum E_PlayerType
{ 
    Main,
    Other,
}

枚举的使用

申明枚举变量

自定义的枚举类型  变量名 = 默认值;(自定义的枚举类型.枚举项)

 E_PlayerType playerType = E_PlayerType.Other;

 if( playerType == E_PlayerType.Main )
 {
     Console.WriteLine("主玩家逻辑");
 }
 else if(playerType == E_PlayerType.Other)
 {
     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;
 }

枚举的类型转换

枚举和int互转

int i = (int)playerType;
Console.WriteLine(i);
//int 转枚举
playerType = 0;

枚举和string相互转换

string str = playerType.ToString();
Console.WriteLine(str);

把string转成枚举

Parse后,第一个参数 :你要转为的是哪个枚举类型;第二个参数:用于转换的对应枚举项的字符串。

转换完毕后是一个通用的类型,我们需要用括号强转成我们想要的目标枚举类型。

playerType = (E_PlayerType)Enum.Parse(typeof(E_PlayerType), "Other");
Console.WriteLine(playerType);

枚举的作用

在游戏开发中,对象很多时候会有许多的状态。

比如玩家有一个动作状态,我们需要用一个变量或者标识来表示当前玩家处于的是哪种状态。

综合考虑,可能会使用int来表示他的状态。

1 行走 2 待机 3 跑步 4 跳跃……等等。

枚举可以帮助我们清晰的分清楚状态的含义。

相关推荐

  1. 类型知识

    2024-06-06 05:28:03       10 阅读
  2. 【Django】类型数据

    2024-06-06 05:28:03       16 阅读
  3. 【PostgreSQL】创建类型和修改

    2024-06-06 05:28:03       35 阅读
  4. C语言之类型

    2024-06-06 05:28:03       39 阅读
  5. SpringBoot实现类型参数认证

    2024-06-06 05:28:03       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 05:28:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 05:28:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 05:28:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 05:28:03       20 阅读

热门阅读

  1. Linux中挂载Windows Samba共享的指南

    2024-06-06 05:28:03       9 阅读
  2. python基于百度,哈工大等停用表进行的中文分词

    2024-06-06 05:28:03       8 阅读
  3. 个人关于ChatGPT的用法及建议

    2024-06-06 05:28:03       8 阅读
  4. HCIA-HarmonyOS Device Developer 课程大纲

    2024-06-06 05:28:03       10 阅读
  5. Homebrew、RVM、ruby、cocoapods

    2024-06-06 05:28:03       10 阅读
  6. actuator/env;.js 漏洞修复

    2024-06-06 05:28:03       9 阅读
  7. springcloud项目部署Nginx+Gateway+其他服务

    2024-06-06 05:28:03       9 阅读
  8. 利用LinearList类定义Stack

    2024-06-06 05:28:03       11 阅读