当前位置: 首页 > news >正文

20250528-C#知识:枚举

C#知识:枚举

  • 枚举变量可以表示角色的各种状态,例如待机、奔跑、攻击等,也可以表示地图的类型,例如墙壁、空白、陷阱等。这样避免了使用数字来表示状态造成阅读理解困难的问题。
  • 本文简单介绍一下枚举的相关知识。

1、枚举类型和枚举变量的定义

  • 枚举类可以定义在类中,也可以定义在类外。
  • 枚举变量声明后要初始化才能使用。
    enum Weekends{Monday, Tuesday, Wednesday,Thursday, Friday, Saturday, Sunday}enum Day{Morning, Lunch, Afternoon, Evening, MidNight}
    //枚举类可以定义在类中,也可以定义在类外//声明枚举变量并初始化Weekends myDate = Weekends.Friday;//直接输出枚举变量Console.WriteLine(myDate);  //Friday//创建一个枚举变量不初始化,然后直接输出//Weekends myDate2;//Console.WriteLine(myDate2);   //因为枚举变量为初始化而编译报错

2、枚举变量的使用

  • if条件表达式中
  • switch条件表达式中
  • 枚举数组用来地图、角色状态等
            //枚举变量可以出现在if语句和switch语句的条件表达式中Day myTime = Day.MidNight;if (myDate == Weekends.Friday && myTime == Day.MidNight)    //条件语句执行    开黑Console.WriteLine("开黑");//枚举与switch天生一对switch (myTime) //输出    客厅蹦迪{case Day.Morning:Console.WriteLine("睡早觉");break;case Day.Lunch:Console.WriteLine("睡午觉");break;case Day.Afternoon:Console.WriteLine("睡下午觉");break;case Day.Evening:Console.WriteLine("睡大觉");break;case Day.MidNight:Console.WriteLine("客厅蹦迪");break;}

3、枚举类型转换

  • 枚举转int
  • 枚举转字符串
  • 字符串转枚举
            int eValue = (int)myTime;Console.WriteLine(eValue);  //4 默认从0开始,依次递增1//枚举转字符串string eStr = myTime.ToString();Console.WriteLine(eStr);    //MidNight//字符串转枚举Weekends tempDate = (Weekends)Enum.Parse(typeof(Weekends), "Sunday");Console.WriteLine(tempDate);    //Sunday

4、完整代码示例

namespace LearnEnum
{enum Weekends{Monday, Tuesday, Wednesday,Thursday, Friday, Saturday, Sunday}internal class Program{enum Day{Morning, Lunch, Afternoon, Evening, MidNight}static void Main(string[] args){//枚举类可以定义在类中,也可以定义在类外//声明枚举变量并初始化Weekends myDate = Weekends.Friday;//直接输出枚举变量Console.WriteLine(myDate);  //Friday//创建一个枚举变量不初始化,然后直接输出//Weekends myDate2;//Console.WriteLine(myDate2);   //因为枚举变量为初始化而编译报错//枚举变量可以出现在if语句和switch语句的条件表达式中Day myTime = Day.MidNight;if (myDate == Weekends.Friday && myTime == Day.MidNight)    //条件语句执行    开黑Console.WriteLine("开黑");//枚举与switch天生一对switch (myTime) //输出    客厅蹦迪{case Day.Morning:Console.WriteLine("睡早觉");break;case Day.Lunch:Console.WriteLine("睡午觉");break;case Day.Afternoon:Console.WriteLine("睡下午觉");break;case Day.Evening:Console.WriteLine("睡大觉");break;case Day.MidNight:Console.WriteLine("客厅蹦迪");break;}//枚举类型与int,string类型的相互转换//枚举转intint eValue = (int)myTime;Console.WriteLine(eValue);  //4 默认从0开始,依次递增1//枚举转字符串string eStr = myTime.ToString();Console.WriteLine(eStr);    //MidNight//字符串转枚举Weekends tempDate = (Weekends)Enum.Parse(typeof(Weekends), "Sunday");Console.WriteLine(tempDate);    //Sunday//探究一下枚举类中的枚举常量,未完待续Console.WriteLine(Weekends.Friday.GetType());   //LearnEnum.Weekends}}
}

5、参考资料

  1. 《唐老狮C#基础》

本文结束,感谢您的阅读~

在这里插入图片描述

相关文章:

  • 学习路之Nginx--不同域名的反向代理
  • MySQL MVCC(多版本并发控制)详解
  • 力扣热题100之二叉树的中序遍历
  • 力扣HOT100之回溯:51. N 皇后
  • 学习python day10
  • 【白雪讲堂】多模态技术:统一认知的优化器
  • [CISCN 2021初赛]glass
  • OpenLayers 加载网格信息
  • Redis 5 种基础数据结构?
  • LiveNVR 直播流拉转:Onvif/RTSP/RTMP/FLV/HLS 支持海康宇视天地 SDK 接入-视频广场页面集成与视频播放说明
  • 《清晰思考》
  • 实验设计与分析(第6版,Montgomery)第4章随机化区组,拉丁方, 及有关设计4.5节思考题4.1~4.4 R语言解题
  • 本地(Linux)编译 MySQL 源码
  • 三、zookeeper 常用shell命令
  • 触控精灵 ADB运行模式填写电脑端IP教程
  • Linux基础 -- Linux 启动调试之深入理解 `initcall_debug` 与 `ignore_loglevel`
  • 从零到一选择AI自动化平台:深度解析n8n、Dify与Coze
  • Axure项目实战:运输统计页引入echarts实现高保真设计(JS代码ctrl+c ctrl+v懂得来)
  • 配置vscode中java.configuration.runtimes
  • 贪心算法实战篇2
  • 民宿网站建设问卷调查/百度sem运营
  • 销售网站建设怎么样/seo网络营销招聘
  • 汽车网站模板下载/广告制作公司
  • 做网站网站加载内容慢怎么解决/搜索引擎有哪些好用
  • 上海网站建设方案/惠州seo快速排名
  • 武汉高端网站建设/站长工具流量统计