当前位置: 首页 > 编程语言 > C#

C#-BitwiseOperatorsinEnumerations(CustomAuthorizationinMVC)分享

时间:2023-04-11 02:43:48 C#

C#:BitwiseOperatorsinEnumerations(CustomAuthorizationinMVC)运营商。谁能给我解释一下?例如。如果我想与客户、员工、主管和管理人员有4个级别的证券。[Serializable][Flags]publicenumWebRoles{customer=1<<0,employee=1<<1,supervisor=1<<2,Admin=2<<3}那么我应该如何实现下面的逻辑。如果(角色!=0&&((角色和角色)!=角色))返回假;有人可以帮我解释一下吗?非常感谢。TD这个例子使用了一个移位运算符:“customer=0001employee=0010supervisor=0100admin=1000(我认为这应该是1现在你可以使用按位或运算符为一个人分配多个角色。这将是竖线“|”。将两个数字一点一点或一点一点地组合起来,设置在两个操作数中的任何一个中设置的每一位。myRole=customer|employee=0011你的if语句旨在告诉某人如果它们具有特定的作用。它使用按位与:“&”。按位与组合两个数字,仅当在两个操作数中设置该位时才设置位。它们使用枚举作为位图:如果特定位设置了,那么你就有这个权限了。他们也用左移运算符。我试着一下子展示一下:roledecimalbinaryshiftdecimal-------------------------------------客户=1=000001=000001=1员工=1=000001=000010=2主管=1=000001=000100=4管理员=2=000010=010000=16所以你可以结合这两个角色。比如有的用户可以同时玩Employee和Supervisor,只需要设置相应的位即可。以及如何检查是否设置了位?这正是(Roles&role)!=role)。例如:WebRolesuser=WebRoles.Employee|Web角色.主管;boolisEmployee=(user&WebRoles.Employee)==WebRoles.Employee;//true如果测试用户变量以检查是否设置了Employee位,&运算符将返回所有匹配位。希望这可以帮助;随意编辑这个答案以上是C#学习教程:C#:BitwiseOperatorsinEnumerations(CustomAuthorizationinMVC)分享的内容,如果对大家有用,需要了解更多关于C#学习教程,希望大家多多指教多多关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: