[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);
}
}