20250528-C#知识:枚举

发布于:2025-05-29 ⋅ 阅读:(18) ⋅ 点赞:(0)

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类型的相互转换
            //枚举转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

            //探究一下枚举类中的枚举常量,未完待续
            Console.WriteLine(Weekends.Friday.GetType());   //LearnEnum.Weekends
        }
    }
}


5、参考资料

  1. 《唐老狮C#基础》

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

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到