zoukankan      html  css  js  c++  java
  • C# 语法练习(6): 枚举


    显示枚举、枚举值、枚举名:
    using System;
    
    class MyClass
    {
        enum MyEnum { AA, BB, CC };  /* 类型定义不能在函数体内 */
    
        static void Main()
        {
            MyEnum e = MyEnum.CC;
            Console.WriteLine(e);                   // CC
            Console.WriteLine((byte)e);             // 2
            Console.WriteLine((int)e);              // 2
            Console.WriteLine(Convert.ToString(e)); // CC
    
            Console.ReadKey();
        }
    }
    

    转换数值或字符串到枚举:
    using System;
    
    class MyClass
    {
        enum MyEnum { AA, BB, CC };
    
        static void Main()
        {
            MyEnum e;
    
            e = (MyEnum)1;
            Console.WriteLine(e);                         // BB
    
            e = (MyEnum)Enum.Parse(typeof(MyEnum), "BB");
            Console.WriteLine(e);                         // BB
    
            Console.ReadKey();
        }
    }
    

    获取枚举的 Names 和 Values:
    using System;
    
    class MyClass
    {
        enum MyEnum { AA, BB, CC };
    
        static void Main()
        {
            foreach (string s in Enum.GetNames(typeof(MyEnum)))
            {
                Console.WriteLine(s); // AA/BB/CC
            }
    
            foreach (int n in Enum.GetValues(typeof(MyEnum)))
            {
                Console.WriteLine(n); // 0/1/2
            }
            
            Console.ReadKey();
        }
    }
    

    枚举值是一个整数(默认是 int 类型、从 0 开始), 可以自定义枚举值:
    using System;
    
    class MyClass
    {
        enum MyEnum { AA=2, BB, CC=7, DD, EE };
    
        static void Main()
        {
            foreach (int i in Enum.GetValues(typeof(MyEnum)))
            {
                Console.WriteLine(i); // 2/3/7/8/9
            }
            
            Console.ReadKey();
        }
    }
    

    可以指定所有整型(不包括 char 类型)为枚举值的类型, 下面是指定为 byte:
    using System;
    
    class MyClass
    {
        enum MyEnum : byte { AA, BB, CC, DD };
    
        static void Main()
        {
            string[] Names = Enum.GetNames(typeof(MyEnum));
            foreach (string s in Names)
            {
                Console.WriteLine(s); // AA/BB/CC/DD
            }
    
            byte[] Values = (byte[])Enum.GetValues(typeof(MyEnum));
            foreach (byte n in Values)
            {
                Console.WriteLine(n); // 0/1/2/3
            }
    
            Console.ReadKey();
        }
    }
    

    枚举经常这样用:
    using System;
    
    class MyClass
    {
        enum MyEnum
        {
            AA = 0x0,
            BB = 0x1,
            CC = 0x2,
            DD = 0x4,
            EE = 0x8,
            FF = 0x10,
            GG = 0x20,
            HH = 0x40
        }
    
        static void Main()
        {
            MyEnum es = MyEnum.CC | MyEnum.DD;
            
            Console.WriteLine(es); // 6
    
            Console.ReadKey();
        }
    }
    

  • 相关阅读:
    HPE Proliant DL380 GEN10服务器配置iLO 5/RAID/安装系统
    centos7安装oracle 11g
    服务器 swap分区使用率高的原因分析及增加swap空间
    mongodb操作记录
    为我的理想和执着的梦想继续前进!
    解决办法-HTTP 错误 401.3 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
    淘金归来:论坛如何显示IP
    2009年牛起来~~~
    通过.NET访问 Oracle数据库
    电脑小技巧 玩转电脑!
  • 原文地址:https://www.cnblogs.com/del/p/1366221.html
Copyright © 2011-2022 走看看