C#枚举

作者: 叫我颜先生 | 来源:发表于2018-06-17 10:12 被阅读0次

    下面的实例演示了枚举变量的用法

       using System;
       namespace EnumApplication
       {
          class EnumProgram
          {
             enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };
    
             static void Main(string[] args)
             {
                int WeekdayStart = (int)Days.Mon;
                int WeekdayEnd = (int)Days.Fri;
                Console.WriteLine("Monday: {0}", WeekdayStart);
                Console.WriteLine("Friday: {0}", WeekdayEnd);
                Console.ReadKey();
             }
          }
       }
    

    当上面的代码被编译和执行时,它会产生下列结果:

       Monday: 1
       Friday: 5
    

    简单枚举

        enum Num
        {
            n1,n2,n3
        }
    
        enum Sex:byte
        {
            male,female
        }
    
        string s1 = Enum.GetName(typeof(Num), 1);   //枚举成员名
        string[] s2 = Enum.GetNames(typeof(Num));
    
        Console.WriteLine(s1);
        foreach (var item in s2)
        {
            Console.WriteLine(item);
        }
    
        Type t = Enum.GetUnderlyingType(typeof(Num));   //Int32枚举类型
        Console.WriteLine(t);
    

    标志枚举
    这种位运算是非常有用的,在sql语句里也支持位运算。也就是说,把一个枚举运算后的结果存入数据库之后,还能够按照你的要求读取出来。比如:将一个"白美"存如数据库的值存入数据库,那么存入去的就是整型5。

    那么我想读出所有的"白"数据列表怎么读呢?白,可以是纯白"1",也是是白富3,可以是白美5,也可以是白富美7,你可以用in来读,但是更好的方法是在sql语句中同样使用位运算。

        class Program
        {
            static void Main(string[] args)
            {
                var man = Week.白 | Week.美;  //赋值为101    计算方法001或上100,结果是101
                Console.WriteLine((int)man);
                if ((man & Week.白) == Week.白)       //101 man 
                {                                    //001 白 逐位相与,
                    Console.WriteLine("此人白");      //001 如果结果是白,就可以反推出man包含 白
                }
                else
                {
                    Console.WriteLine("此人黑");
                }
                Console.ReadKey();
            }
        }
    
        [System.Flags]
        public enum Week
        { 
            白 = 1,  //001
            富 = 2,  //010
            美 = 4,  //100
        }
    

    相关文章

      网友评论

          本文标题:C#枚举

          本文链接:https://www.haomeiwen.com/subject/cvebeftx.html