枚舉

枚舉:函數

定義枚舉使用到的關鍵字: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

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息