c# enum 枚举一般用法

来源:互联网 发布:linux如何查看raid 编辑:程序博客网 时间:2024/05/29 09:36

c# enum

public enum Demo
{
Moning = 0,
Afternoon = 1,
Evening = 2,
};

枚举方法

1、获取枚举字符串

Demo time = Demo.Afternoon;

Console.WriteLine(time.ToString());//输出:Afternoon

2、Enum.Parse()方法。这个方法带3个参数,第一个参数是要使用的枚举类型。其语法是关键字typeof后跟放在括号中的枚举类名。typeof运算符将在第5章详细论述。第二个参数是要转换的字符串,第三个参数是一个bool,指定在进行转换时是否忽略大小写。最后,注意Enum.Parse()方法实际上返回一个对象引用——我们需要把这个字符串显式转换为需要的枚举类型(这是一个取消装箱操作的例子)。对于上面的代码,将返回1,作为一个对象,对应于Demo.Afternoon的枚举值。在显式转换为int时,会再次生成1。

Demo time2 = (Demo) Enum.Parse(typeof(Demo), “afternoon”, true);

Console.WriteLine((int)time2);//输出1

3、得到枚举的某一值对应的名称

lbOne.Text = Enum.GetName(typeof(Demo), 0);
lbOne.Text = ((Demo)0).ToString();//返回:Morning

两种方法都能实现,但是当其值越界(不是枚举所列出的值),就有一定的区别了。大家可以根据自己的需求不同,选择合适的方法。

lbCon.Text = ((Demo)5).ToString(); //返回:5,如果越界返回原值

this.lbGetName.Text = Enum.GetName(typeof(Demo), 5); //返回:空字符串,如果越界返回空字符串

4、得到枚举的所有的值

foreach (int i in Enum.GetValues(typeof(Demo)))
lbValues.Text += i.ToString();
5、枚举所有的名称

foreach(string temp in Enum.GetNames(typeof(Demo)))
lbNames.Text+=temp;