C# 枚举 Flag属性(权限设计)

枚举是一个可以列举元素的对象,常用于权限,日期,类型等。

如果对一个值可以包含多个,那么可以使用枚举,加上Flags

[Flag]
public enum Permission
{
  create=1,
  add=2,
  delete=4,
  update=8        
}
//权限设计通常用2的幂次方,防止值重复

权限相加

Permission addP=Permission.create|Permission.add

判断是否含有此权限

addP.HasFlag(Permission.add);
//或者
(show & Show.A)!=0;//T 有 F 无

删除权限

addP=addP& (~Permission.add);

数据库存int,将int转成枚举

Permission allP = (Permission) Enum.Parse(typeof(Permission), 3 ); 
posted @ 2019-01-23 18:22  木狼  阅读(3328)  评论(0编辑  收藏  举报