C# 列舉常用方法淺析

pamxy發表於2013-10-21

轉自:http://developer.51cto.com/art/200908/144471.htm

C# 列舉常用方法是什麼呢?在C# 列舉的學習中,C# 列舉常用方法十分的重要,那麼C# 列舉常用方法的各自使用特點是什麼呢?本文就向你介紹這方面的內容。

AD: 2013雲端計算架構師峰會精彩課程曝光

C# 列舉常用方法對於C# 列舉的學習十分重要,那麼我們現在來看看什麼是C# 列舉常用方法:

C# 列舉常用方法<1>獲取列舉字串

  1. TimeOfDay time = TimeOfDay.Afternoon;  
  2.  
  3. Console.WriteLine(time.ToString());//輸出:Afternoon 

C# 列舉常用方法<2>Enum.Parse()方法

這個方法帶3個引數,第一個引數是要使用的列舉型別。其語法是關鍵字typeof後跟放在括號中的列舉類名。typeof運算子將在第5章詳細論述。第二個引數是要轉換的字串,第三個引數是一個bool,指定在進行轉換時是否忽略大小寫。最後,注意Enum.Parse()方法實際上返回一個物件引用—— 我們需要把這個字串顯式轉換為需要的列舉型別(這是一個取消裝箱操作的例子)。對於上面的程式碼,將返回1,作為一個物件,對應於TimeOfDay.Afternoon的列舉值。在顯式轉換為int時,會再次生成1。

  1. TimeOfDay time2 = (TimeOfDay)   
  2.  
  3. Enum.Parse(typeof(TimeOfDay), "afternoon"true);  
  4.  
  5. Console.WriteLine((int)time2);//輸出1 

C# 列舉常用方法<3>得到列舉的某一值對應的名稱

  1. lbOne.Text = Enum.GetName(typeof(TimeOfDay), 0);  
  2.  
  3. lbOne.Text = ((TimeOfDay)0).ToString();//返回:Morning 

兩種方法都能實現,但是當其值越界(不是列舉所列出的值),就有一定的區別了。大家可以根據自己的需求不同,選擇合適的方法。

  1. lbCon.Text = ((TimeOfDay)5).ToString();   
  2.  
  3. //返回:5,如果越界返回原值  
  4.  
  5. this.lbGetName.Text = Enum.GetName(typeof(TimeOfDay), 5);   
  6.  
  7. //返回:空字串,如果越界返回空字串 

C# 列舉常用方法<4>得到列舉的所有的值

  1. foreach (int i in Enum.GetValues(typeof(TimeOfDay)))  
  2. lbValues.Text += i.ToString(); 

C# 列舉常用方法<5>列舉所有的名稱

  1. foreach(string temp in Enum.GetNames(typeof(TimeOfDay)))  
  2. lbNames.Text+=temp; 

C# 列舉常用方法的基本情況就向你介紹到這裡,希望對你瞭解和學習C# 列舉有所幫助。


相關文章