时间:2021-05-22
作者:slightboy,时间:2006-10-14
首发于:http://cs.alienwave.cn/Topic/329.aspx
看到好多同学权限判断都是用字符串然后或分割或截取
其实对于允许/不允许(true/false)这种的权限,用逻辑运算再恰当不过了
声明下:本文针对入门和为掌握的同学,如果已经懂了那可以无视了
可能意思表达的不是很清楚,敬请原谅.
逻辑运算符介绍:
And:逻辑与
0And0=0
0And1=0
1And0=0
1And1=1
Or:逻辑或
0Or0=0
0Or1=1
1Or0=1
1Or1=1
Xor:异或
0Xor0=1
0Xor1=1
1Xor0=1
1Xor1=1
Not:逻辑非
Not1=0
Not0=1
表达方式介绍:
1表示ture,0表示false
举二位为例
第一位表示Read的权限,第二位表示Write的权限,可以表示一下四种权限
00Read(false)Write(false)
01Read(true)Write(false)
10Read(false)Write(true)
11Read(true)Write(true)
运算方式介绍:
还是继续上面的例子
Read=01(1),Write=10(2)
00(0)AndRead=0
01(1)AndRead=Read
10(2)AndRead=0
11(3)AndRead=Read
00(0)AndWrite=0
01(1)AndWrite=0
10(2)AndWrite=Write
11(3)AndWrite=Write
下面给出示例代码:
权限定义类(要有枚举类型该多好啊...)
ClassPermissionTypePublicReadPublicWritePublicDeletePrivateSubClass_InitializeRead=1Write=2Delete=4EndSubEndClass
权限类
ClassPermissionSetComponentPrivateintValuePublicPropertyGetRead()Read=GetValue(Permission.Read)EndPropertyPublicPropertyLetRead(arg)CallSetValue(Permission.Read,arg)EndPropertyPublicPropertyGetWrite()Write=GetValue(Permission.Write)EndPropertyPublicPropertyLetWrite(arg)CallSetValue(Permission.Write,arg)EndPropertyPublicPropertyGetDelete()Delete=GetValue(Permission.Delete)EndPropertyPublicPropertyLetDelete(arg)CallSetValue(Permission.Delete,arg)EndPropertyPublicPropertyGetValue()Value=intValueEndPropertyPublicPropertyLetValue(arg)intValue=argEndPropertyPublicFunctionGetValue(intType)GetValue=(ValueandintType)=intTypeEndFunctionPublicSubSetValue(intType,boolValue)IF(boolValue)ThenValue=ValueOrintTypeElseValue=ValueAnd(NotintType)EndIFEndSubEndClass
运用示例代码:
DimPermission:SetPermission=newPermissionTypeDimPermissionSet:SetPermissionSet=newPermissionSetComponentPermissionSet.Value=0w("Read:")PermissionSet.Read=falsew(PermissionSet.Value&""&PermissionSet.Read)PermissionSet.Read=truew(PermissionSet.Value&""&PermissionSet.Read)w("Write:")PermissionSet.Write=falsew(PermissionSet.Value&""&PermissionSet.Write)PermissionSet.Write=truew(PermissionSet.Value&""&PermissionSet.Write)w("Delete:")PermissionSet.Delete=falsew(PermissionSet.Value&""&PermissionSet.Delete)PermissionSet.Delete=truew(PermissionSet.Value&""&PermissionSet.Delete)Functionw(o)Response.Write("<br/>"&o)EndFunction
今天的课程就到这里,大家可以举一反三,下课...
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
运算器的功能是实现算术运算和逻辑运算。 运算器(arithmeticunit)是计算机中执行各种算术和逻辑运算操作的部件。运算器的处理对象是数据,所以数据长度
运算器的作用是实现算术运算和逻辑运算。 运算器(arithmeticunit)是计算机中执行各种算术和逻辑运算操作的部件。运算器的处理对象是数据,所以数据长度
运算器的主要功能是实现算术运算和逻辑运算。 运算器:arithmeticunit,计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除
运算器的主要功能是实现算术运算和逻辑运算。运算器的基本功能是完成对各种数据的加工处理,例如算术四则运算,与、或、求反等逻辑运算,算术和逻辑移位操作,比较数值,变
前面的话逻辑运算符对操作数进行布尔运算,经常和关系运算符一样配合使用。逻辑运算符将多个关系表达式组合起来组成一个更复杂的表达式。逻辑运算符分为逻辑非'!'、逻辑