我对位标识的使用

位标识确实是特别好用,可以用它来设置权限。
eg:一个八位的二进制去设置一系列的操作,初始化时:00000000,从第一步操作开始,每完成一次操作就使对应的位由0变为1。
00000001 第一步完成
00000011 第一步和第二步完成
00000111 第一步和第二步和第三步都完成
…… 当所有的位都为1时就表示所有的操作都已经完成

但是当第二步完成后第一步也可以修改的情况下,此时即00000010。我们可以使用枚举操作设置完成的步骤。
//测试数据录入状态的标志
//下面的枚举值从低位开始标志8个录入项

public enum DataState
{
step1= 1,
step2= 2,
step3= 4,
step4= 8,
step5= 16,
step6= 32,
step7= 64,
step8= 128
}
定义属性 public DataState MyDataState{get;set}

当为每一步条件进行判断,满足条件时,便可使对应位由0设置为1。

this.MyDataState=this.MyDataState|DataState.step1;

如果修改后的数据不满足此步要求的条件,就要将对应的位设置为0。

this.MyDataState=this.MyDataState&(`DataState.step1);

最后可保存到数据库中。

以上只是个人理解,请多多指教。

转载于:https://www.cnblogs.com/Cindys/archive/2011/03/28/1997491.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值