c# enum
public enum Demo
{
Moning = 0,
Afternoon = 1,
Evening = 2,
};
枚舉方法
1、獲取枚舉字符串
Demo time = Demo.Afternoon;
Console.WriteLine(time.ToString());//輸出:Afternoon
2、Enum.Parse()方法。這個(gè)方法帶3個(gè)參數(shù),第一個(gè)參數(shù)是要使用的枚舉類型。其語(yǔ)法是關(guān)鍵字typeof后跟放在括號(hào)中的枚舉類名。typeof運(yùn)算符將在第5章詳細(xì)論述。第二個(gè)參數(shù)是要轉(zhuǎn)換的字符串,第三個(gè)參數(shù)是一個(gè)bool,指定在進(jìn)行轉(zhuǎn)換時(shí)是否忽略大小寫。最后,注意Enum.Parse()方法實(shí)際上返回一個(gè)對(duì)象引用——我們需要把這個(gè)字符串顯式轉(zhuǎn)換為需要的枚舉類型(這是一個(gè)取消裝箱操作的例子)。對(duì)于上面的代碼,將返回1,作為一個(gè)對(duì)象,對(duì)應(yīng)于Demo.Afternoon的枚舉值。在顯式轉(zhuǎn)換為int時(shí),會(huì)再次生成1。
Demo time2 = (Demo) Enum.Parse(typeof(Demo), "afternoon", true);
Console.WriteLine((int)time2);//輸出1
3、得到枚舉的某一值對(duì)應(yīng)的名稱
lbOne.Text = Enum.GetName(typeof(Demo), 0);
lbOne.Text = ((Demo)0).ToString();//返回:Morning
兩種方法都能實(shí)現(xiàn),但是當(dāng)其值越界(不是枚舉所列出的值),就有一定的區(qū)別了。大家可以根據(jù)自己的需求不同,選擇合適的方法。
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;