C#位操作与枚举的应用

看到代码里有用位操作来判断条件的,以前没有这么用过,做个笔记:

int add = 2;
int modify = 4;
int delete = 8;

Console.WriteLine((add | modify | delete) & add); //2
Console.WriteLine((add | modify | delete) & modify); //4
Console.WriteLine((add | modify | delete) & delete); //8

但是直接使用整数进行位操作,可读性不太好。

其实C#里有枚举,也可以实现,但是C#的枚举可读性应该更好

[Flags]
enum OperatingAuthorization
{
    Add = 2,
    Modify = 4,
    Delete = 8
}

OperatingAuthorization allOperating = OperatingAuthorization.Add | OperatingAuthorization.Modify | OperatingAuthorization.Delete;
Console.WriteLine(allOperating & OperatingAuthorization.Add); //Add

这个可以用于判断权限是否存在,
如allOperating & OperatingAuthorization.Add == OperatingAuthorization.Add,则可确定allOperating包含OperatingAuthorization.Add
这里可以假定allOperating是从数据库取出来的

转载于:https://www.cnblogs.com/liqipeng/p/4739255.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值