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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值