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();
        }
    }
    

  • 相关阅读:
    异常类
    设计模式
    java的参数传递
    meta 标签中 http-equiv 的作用
    导入CSV格式文件方法
    第四次博客作业-结对项目
    第九次作业-接口及接口回调
    第八次作业-继承
    软件工程第三次作业——关于软件质量保障初探
    Java第七次作业
  • 原文地址:https://www.cnblogs.com/del/p/1366221.html
Copyright © 2011-2022 走看看