枚舉:函數
定義枚舉使用到的關鍵字:enumspa
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Test_1 8 {
//新建一個名爲DataOfDay的枚舉類型,該類型具備七個成員 9 public enum DataOfDay 10 { 11 Monday, // 默認值:0 12 Tuesday, // 默認值:1 13 Wendsday, // 默認值:2 14 Thursday, // 默認值:3 15 Friday=3, // 默認值:4 3 16 Saturday, // 默認值:5 4 17 Sunday // 默認值:6 5 18 } 19 class Program 20 { 21 22 static void Main(string[] args) 23 { 24 //枚舉中的成員都有默認值,且會從0依次遞增 25 int data = (int)DataOfDay.Friday; 26 Console.WriteLine(data); 27 28 //能夠給枚舉中的成員賦值,值從該成員開始依次遞增 29 int data_1 = (int)DataOfDay.Saturday; 30 Console.WriteLine(data_1); 31 32 Console.ReadKey(); 33 } 34 } 35 }
建立枚舉的優勢:code
1.是代碼易於維護,由於確保給變量指定合法的、指望的值。blog
2.代碼清晰,容許用描述性的名稱拜師整數值,而不是含義模糊,變化無窮的數來表示。字符串
3.易於鍵入(經過使用 . 符號)。string
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Test_1 8 { 9 public enum DataOfDay 10 { 11 Monday, // 默認值:0 12 Tuesday, // 默認值:1 13 Wendsday, // 默認值:2 14 Thursday, // 默認值:3 15 Friday=3, // 默認值:4 16 Saturday, // 默認值:5 17 Sunday // 默認值:6 18 } 19 class Program 20 { 21 22 static void Main(string[] args) 23 { 24 //枚舉中的成員都有默認值,且會從0依次遞增 25 int data = (int)DataOfDay.Friday; 26 Console.WriteLine(data); 27 28 //能夠給枚舉中某個成員賦值,值從該成員開始依次遞增 29 int data_1 = (int)DataOfDay.Saturday; 30 Console.WriteLine(data_1); 31 32 WritngGreeting(DataOfDay.Saturday); 33 34 35 Console.ReadKey(); 36 } 37 38 //使用枚舉通常和合適的值傳遞給方法,並在switch語句中迭代可能的值. 39 static void WritngGreeting(DataOfDay dataofday) 40 { 41 switch (dataofday) 42 { 43 case DataOfDay.Monday: 44 Console.WriteLine("Good monday!"); 45 break; 46 case DataOfDay.Friday: 47 Console.WriteLine("Good friday!"); 48 break; 49 case DataOfDay.Saturday: 50 Console.WriteLine("Good saturday!"); 51 break; 52 default: 53 break; 54 } 55 } 56 } 57 }
注意:枚舉類型的值類型是除 Char 外的任何整型,因此枚舉類型的值是整型值。it
在C#中枚舉的真正強大之處使他們在後臺會實例化爲派生於基類的System.Enum的結構.這表示能夠對他們調用方法,執行有用的任務.一旦代碼編譯好,枚舉就成爲了基本類型,與int和float相似.io
//使用前面的例子獲取枚舉的字符串表示
DataOfDay data_2 = DataOfDay.Saturday;
Console.WriteLine(data_2);
//字符串類型轉換爲整型
DataOfDay data_3 = (DataOfDay)Enum.Parse(typeof(DataOfDay), "Saturday",true);
Console.WriteLine((int)data_3);
從字符串類型轉化爲枚舉類型須要用到函數Enum.Parse(),這個方法須要三個參數,
第一個是要轉換的枚舉類型,用關鍵字typeof包起來,
第二個是要轉換的字符串(必定是枚舉中有的),
第三個是否忽略大小寫.
看下例:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Test_1 8 { 9 public enum Colors 10 { 11 blue, 12 red, 13 orange, 14 green, 15 black 16 } 17 class Program 18 { 19 20 static void Main(string[] args) 21 { 22 //enum --> string 23 Colors c1 = Colors.blue; 24 string str1 = c1.ToString(); 25 26 //string-->Enum 27 //利用Enum的靜態方法Parse() 28 Colors c2=(Colors)Enum.Parse(typeof(Colors),"red",true); 29 string str2 = c2.ToString(); 30 Console.WriteLine(str2); 31 Console.ReadKey(); 32 33 //Enum-->int 34 //直接使用強制轉換 35 int blue=(int)Colors.blue; 36 37 38 Console.ReadKey(); 39 } 40 41 42 } 43 }
若是要判斷某個整型是否認義在枚舉中的方法:Enum.IsDefined.編譯
Enum.Isdefined(typeof(Colors),number)class