原理: 控制一个整数的二进制的每一位,当它为1时,我们认为他拥有权限,当为0时,认为他无权限,就这么简单 注意:这不是什么创新 废话不多说,直接上代码 public enum Permission { 新建 = 1, 删除 = 2, 修改 = 4, 保留权限1 = 8, 保留权限2 = 16, 保留权限3 = 32, 保留权限4 = 64, 保留权限5 = 128 } public class PSolution { /**//// <summary> /// 原始权限 /// </summary> int pNum; public int PNum { get { return pNum; } set { pNum = value; } } public PSolution(int a) { if (a < 0 || a > 255) { throw new ArgumentException("参数值必须大于0且小于255"); } pNum = a; } /**//// <summary> /// 清除指定的权限 /// </summary> public void cleanBit(Permission p) { pNum &= ~((int)p); } /**//// <summary> /// 设置指定的权限 /// </summary> public void setBit(Permission p) { pNum |= ((int)p); } /**//// <summary> /// 检查是否拥有指定的权限 /// </summary> public bool checkBit(Permission p) { int bTemp = pNum >> Convert.ToInt16(System.Math.Log((double)p,2d)); if ((bTemp & 0x01) == 1) return true; return false; }} 转载于:https://www.cnblogs.com/scroot/archive/2008/07/22/1248569.html