您的位置:首页 > 编程语言 > C#

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

2008-12-31 17:04 211 查看
显示枚举、枚举值、枚举名:
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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: