[System.Flags] public enum ReportEnum { FirstReport=0, MiddleReport=1<<0, ThirdReport=1<<1, YearReport=1<<2, LatestReport=1<<3 } class Program { static void Main(string[] args) { Console.WriteLine("hello world"); //遍历枚举 foreach (ReportEnum s in Enum.GetValues(typeof(ReportEnum))) { Console.WriteLine(s); } //值转换为枚举,加了Flags,输出YearReport,LatestReport 不加输出10,数值若是转换失败直接返回数字 ReportEnum rptEnum = (ReportEnum)10; Console.WriteLine(rptEnum); //字符串转换 加了Flags,输出YearReport,ThirdReport 不加输出6 若是字符串不匹配会报错 ReportEnum rptEnum2 = (ReportEnum)Enum.Parse(typeof(ReportEnum), "YearReport,ThirdReport", true); Console.WriteLine(rptEnum2); //字符串转换 加了Flags,输出YearReport,ThirdReport 不加输出6 若是字符串不匹配默认转换成第一个FirstReport ReportEnum rptEnum3; Enum.TryParse("YearReport,ThirdReport", out rptEnum3); Console.WriteLine(rptEnum3); } }