C# switch语句与枚举类型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    enum Day  //枚举类型
    {
        Sunday,
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday
    }
    class Program
    {
        static void Main(string[] args)
        {
            Day MyDay ;
            int pass = Convert.ToInt16(Console.ReadLine());
            switch (pass)   //switch语句,等于delphi中的case语句
            {
                case (int)(Day.Sunday):
                    MyDay = Day.Sunday;
                    Console.WriteLine("今天是星期天,还可以睡个懒觉. {0}",MyDay);
                    break;
                case (int)Day.Monday :
                    MyDay = Day.Monday;
                    Console.WriteLine("今天该上班咯,新的一星期开始了!! {0}",MyDay);
                    break;
                case (int)Day.Tuesday :
                    MyDay = Day.Tuesday;
                    Console.WriteLine("本周的第二个工作日. {0}",MyDay);
                    break;
                case (int)Day.Wednesday :
                    MyDay = Day.Wednesday;
                    Console.WriteLine("本周的第三个工作日 {0}", MyDay);
                    break;
                case (int)Day.Thursday :
                    MyDay = Day.Thursday;
                    Console.WriteLine("本周的第四个工作日 {0}",MyDay);
                    break;
                case (int)Day.Friday :
                    MyDay = Day.Friday;
                    Console.WriteLine("本周的最后一个工作日, 把工作都完成明天你就可以睡懒觉了.! 加油 {0}",MyDay);
                    break;
                case (int)Day.Saturday:
                    MyDay = Day.Saturday;
                    Console.WriteLine("今天是星期六,想好去哪玩了吗? {0}",MyDay);
                    break;
                default :
                    Console.WriteLine("你输入了错误的信息");
                    break;
                    
            }

            }
        }
    }
// 枚举类型虽然表面上看着是一个字符串,但是实际上它在内存中存储的整形数值.
// 所以枚举类型是可以用数学运算符进行运算的, 比如. MyDay++;
甚至是可以做异或运算,与运算等. 不过需要先将其转换为整型. 比如. Console.WriteLine(Convert.Toint32(MyDay)^1);

但是有一点要记住, 做数学运算的时候,如果计算的范围超过了枚举范围,那么这个枚举类型变量将会变成一个数字.
假如
Day = Saturday,这个时候再进行 Day++运算的话,那么Day会返回一个数字, 在这里返回的数字是7

原文地址:https://www.cnblogs.com/mdnx/p/2665747.html