WEB开发网
开发学院软件开发C语言 C# 语法练习(6): 枚举 阅读

C# 语法练习(6): 枚举

 2009-02-23 08:17:00 来源:WEB开发网   
核心提示:显示枚举、枚举值、枚举名:using System;class MyClass{enum MyEnum { AA, BB, CC }; /* 类型定义不能在函数体内 */static void Main(){MyEnum e = MyEnum.CC;Console.WriteLine(e); // CCConso

显示枚举、枚举值、枚举名:

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

Tags:语法 练习 枚举

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接