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
    }

相关文章

  • Typescript(十二)Enum 枚举类型

    Typescript中的枚举(enum)可以参考C#中的枚举(enum)类型,毕竟都是微软开发的语言。 枚举这个数...

  • 理解C#中的枚举(深入思考)

    这篇文章主要介绍了理解C#中的枚举,本文讲解了枚举的优点、枚举说明、枚举的类型、枚举的使用建议等内容,需要的朋友可...

  • C#魔将-lesson_07-枚举

    枚举(Enum) 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说,枚...

  • C#入门笔记(二)

    0x00 枚举 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值数据类型。 enum...

  • C#枚举

    下面的实例演示了枚举变量的用法 当上面的代码被编译和执行时,它会产生下列结果: 简单枚举 标志枚举这种位运算是非常...

  • C#枚举

    申明enum变量 枚举元素的默认基础类型是 int。 若要声明另一整型类型的枚举(如 byte),则请在后跟该类型...

  • c# 枚举

    枚举是一个特殊的值类型,它可以让你指定一组命名的数值常量 枚举类型的底层原理 每个枚举都对应一个底层的整形数值(E...

  • C#枚举类型操作归纳(二)

    C#编译器将枚举类型视为基元类型,所以可用操作符(==, !=, <, >, <=, >=, +, -, ^, &...

  • TS学习笔记(六):枚举

    枚举是组织收集有关联变量的一种方式,使用枚举我们可以定义一些带名字的常量,像 C# 和 Java 都有枚举数据类型...

  • Unity 学习,C#基础学习

    包含,C#字符串,枚举,集合,数组以及类,属性的设置 C#基本数据类型代码一:字符串!using UnityEng...

网友评论

      本文标题:C#枚举

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