当我们为某个用户设置某个功能的增删改查, 审核, 等等权限的时候, 又不想用多个字段来记录此功能的权限时, 可以考虑用类似枚举值的形式来保存选择的权限,
比如:
查看 = 1
新增 = 2
修改 = 4
删除 = 8
审核 = 16
发布 = 32
当用户的权限值 = 6 的时候 我们就知道他拥有新增和修改权限, 当 = 33 的时候 就知道拥有查看和发布权限, 具体计算可参考下面的代码
- static void Main(string[] args)
- {
- while (true)
- {
- Console.WriteLine("输入数字:");
- List<int> lst = new List<int>();
- GetNum(int.Parse(Console.ReadLine()), lst);
- Console.WriteLine("结果:" + string.Join(" ", lst));
- }
- Console.ReadKey();
- }
- private static void GetNum(int intNum, List<int> lst)
- {
- if (intNum <= 0)
- return;
- double dec = Math.Log(intNum) / Math.Log(2);
- int intMax = (int)dec;
- int intMaxNum = (int)Math.Pow(2, intMax);
- lst.Add(intMaxNum);
- intNum = intNum - intMaxNum;
- GetNum(intNum, lst);
- }
运行结果
这样就可以很方便的存储多个权限到一个字段
来源: http://www.bubuko.com/infodetail-2920618.html