有很多人寫的教程都沒有像我一樣用代碼簡單說明...
所以我這里貼出來一下,免得我忘記...嘻嘻
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 枚舉類型怎么寫 { class Program {
//定義枚舉 public enum ServicePut : byte { 安裝服務 = 2, 啟動服務 = 4, 卸載服務 = 8, 驗證服務狀態 = 16, 停止服務 = 32, 嘻嘻 = 64, 哈哈 = 128, }
//輸出執行了那個枚舉形式 public static void DeployService(ServicePut jsp) { if ((jsp & ServicePut.安裝服務) == ServicePut.安裝服務) { Console.WriteLine("安裝服務"); } if ((jsp & ServicePut.啟動服務) == ServicePut.啟動服務) { Console.WriteLine("啟動服務"); } if ((jsp & ServicePut.卸載服務) == ServicePut.卸載服務) { Console.WriteLine("卸載服務"); } if ((jsp & ServicePut.驗證服務狀態) == ServicePut.驗證服務狀態) { Console.WriteLine("驗證服務狀態"); } if ((jsp & ServicePut.停止服務) == ServicePut.停止服務) { Console.WriteLine("停止服務"); } if ((jsp & ServicePut.嘻嘻) == ServicePut.嘻嘻) { Console.WriteLine("嘻嘻"); } if ((jsp & ServicePut.哈哈) == ServicePut.哈哈) { Console.WriteLine("哈哈"); } }
//主函數 static void Main(string[] args) { DeployService(ServicePut.安裝服務); DeployService(ServicePut.啟動服務); DeployService(ServicePut.卸載服務); DeployService(ServicePut.驗證服務狀態); DeployService(ServicePut.停止服務); DeployService(ServicePut.嘻嘻); Console.WriteLine("--------------------------"); DeployService(ServicePut.安裝服務 | ServicePut.啟動服務); //這里可以把兩個值按照按位運算判斷,也就是可以同時輸出兩個項 DeployService(ServicePut.安裝服務 | ServicePut.停止服務); DeployService(ServicePut.驗證服務狀態 | ServicePut.停止服務); DeployService(ServicePut.啟動服務 | ServicePut.停止服務); DeployService(ServicePut.哈哈 | ServicePut.啟動服務); DeployService(ServicePut.嘻嘻 | ServicePut.停止服務); Console.ReadKey(); } } }
然后枚舉的問題還有:
1 通過枚舉的名稱獲取值.
2 通過值獲取名稱.
但是只要知道了 Enum.GetValues() 的操作就可以了
foreach (var value in Enum.GetValues(typeof(ServicePut))) //遍歷這個枚舉類型 { if (value.ToString() == "驗證服務狀態") //獲取枚舉的每項的名稱 { var enumName = (ServicePut)value; //然后把泛型又強轉成枚舉類型,可作為輸出 break; } }