枚举作为Flag使用

语法

[Flags]public enum Permission{ create = 1, read = 2, update = 4, delete = 8,}

注意事项

由于flag的本质是使用或运算进行位运算,所以枚举值必须是能进行或运算的

应用

权限管理

使用

//初始化WeekEnum week = (WeekEnum)127;Console.WriteLine(week.ToString()); //输出 Sunday, Monday, Tuesday, Wendnesday, Thursday, Friday, SaturdayWeekEnum week = WeekEnum.Sunday;//添加一个星期week = week | WeekEnum.Monday;Console.WriteLine(week.ToString()); // 输出Sunday, Monday//去掉一个星期week = week & ~WeekEnum.Sunday;Console.WriteLine(week.ToString()); //输出 Monday//判断是否有某个元素obj.HasFlag() // 返回True False字符串转化为枚举

string day = "monday";WeekEnum today = (WeekEnum)Enum.Parse(typeof(WeekEnum), day, true);// 最后一个参数标识字符串是否区分大小写修改枚举的变量类型

xiupublic enum Color : short{}// 可以变化为 byte short int 等类型枚举的遍历

public enum Suits{ Spades, Hearts, Clubs, Diamonds, NumSuits}private static void Main(string[] args){ foreach (Suits suit in Enum.GetValues(typeof(Suits))) { Console.WriteLine((int)suit+ ":" + suit); }}