public enum ReportType { Day, Week, Month, Quarter, Year } private static void TestEnum() { ReportType day = ReportType.Day; string daystr = "Day"; int dayInt = 0; //1.枚舉轉字符串 var enum_to_str = day.ToString(); var enum_to_str2 = Enum.GetName(typeof(ReportType), ReportType.Day);//效率高 //2.枚舉轉值 int enum_to_int = day.GetHashCode(); int enum_to_int2 = (int)day; int enum_to_int3 = Convert.ToInt32(day); //3.字符串轉枚舉 ReportType day_temp = (ReportType)Enum.Parse(typeof(ReportType), daystr); //4.枚舉字符串轉值 int day_int = (int)(ReportType)Enum.Parse(typeof(ReportType), daystr); //5.值轉枚舉 ReportType int_to_enum = (ReportType)dayInt; ReportType int_to_enum2 = (ReportType)Enum.ToObject(typeof(ReportType), dayInt); //6.值轉字符串 string int_to_str = Enum.GetName(typeof(ReportType), dayInt); ReportType reporttype= ReportType.Month; /******注意點*****/ string obj="155"; if (Enum.TryParse(obj, out reporttype))//obj 是數字時候未定義枚舉時候的轉化是成功的,必須走67行的判定 { if (Enum.IsDefined(typeof(ReportType), reporttype))//IsDefined內部用了反射 { Console.WriteLine(reporttype.ToString()); } else { Console.WriteLine("非枚舉成員"); } } /******注意點*****/ }
4.其他的不多做介紹,注重實戰