C#枚举的多组合用法
- 创建一个枚举来举例(用户权限,一个用户可以有多个权限)
using System;
using System.ComponentModel;
namespace EnumExample
{
/// <summary>
/// 权限枚举类型
/// </summary>
[Flags]
public enum AuthorityEnum
{
[Description("添加")]
Create=1,
[Description("编辑")]
Edit=2,
[Description("删除")]
Delete=4
}
}
2、使用测试
using System;
namespace EnumExample
{
internal static class Program
{
public static void Main(string[] args)
{
var authority = AuthorityEnum.Create|AuthorityEnum.Edit|AuthorityEnum.Delete;
Console.WriteLine(authority.ToString());//打印Create,Edit,Delete,数据库可保存字符串格式
authority = authority&~AuthorityEnum.Delete;
Console.WriteLine(authority.ToString());//打印Create,Edit
authority = authority|AuthorityEnum.Delete;
Console.WriteLine(authority.ToString());//打印Create,Edit,Delete
Console.WriteLine(authority.HasFlag(AuthorityEnum.Create));//判断是否包含添加的权限
//或者
Console.WriteLine((authority&AuthorityEnum.Create)!=0);
}
}
}
3、使用的时候需要注意给枚举打上Flag标签,如上;枚举的值有多种写法,上述写法最为常见,也就是2的n次方