当前位置: 首页 > 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#基础》

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

在这里插入图片描述

http://www.xdnf.cn/news/688951.html

相关文章:

  • 20250528-C#知识:结构体
  • C# Socket对象创建方式详解
  • C接口 中文字符问题
  • 针对C++开发工具推荐及分析(涵盖IDE、编译器、调试工具和辅助工具)
  • 电脑开机后出现bootmgr is conmpressed原因及解决方法
  • 【Redis】基本架构
  • Dockerfile 构建优化的方法
  • 智变与重构:AI 赋能基础教育教学的范式转型研究报告
  • 理解 Vue 2 的响应式原理:数据劫持与依赖收集的背后
  • 第八天:面向对象编程
  • React---day3
  • CVE-2017-12629-XXE源码分析与漏洞复现
  • 设计模式24——访问者模式
  • 【AUTOSAR OS】 保护功能解析:从原理到应用与源代码解析(下篇)
  • 《Python+AI如何颠覆传统文书审查模式》
  • 【网络安全】——Modbus协议详解:工业通信的“通用语言”
  • JS 逆向太费劲,试试 JS 注入!
  • 服务器上用脚本跑python深度学习的注意事项(ubantu系统)
  • 【第2章 绘制】2.6 阴影
  • 基于stm32LORA无线抄表系统仿真
  • 人工智能在智能建筑中的创新应用与未来趋势
  • 将docker容器保存为镜像,让后将镜像打包保存到本地
  • WPF的基础控件:布局控件(StackPanel DockPanel)
  • React+Antd全局加载遮罩工具
  • 2. 数据结构基本概念 (2)
  • LLM 对齐新范式:深入解析 DPO (Direct Preference Optimization) 的原理与实践
  • Microsoft的在word中选择文档中的所有表格进行字体和格式的调整时的解决方案
  • 180 度 = π 弧度
  • 2025吉林ccpc【部分题解】
  • c++第三天(对象与构造函数)