C#: bitwise operator in enum (Custom Authorization in MVC)

后端 未结 2 1405
旧巷少年郎
旧巷少年郎 2020-12-29 14:27

I\'m currently reading an article , but I do not really understand how this work with the logical operator. Can anyone explain this to me?

eg. If I want to have 4 le

2条回答
  •  渐次进展
    2020-12-29 14:42

    This example uses the bitwise shift operator: "<<". This operator takes the bits and shifts them. For example, "1 << 3" results in the number 8. So, in binary,

    customer =    0001
    employee =    0010
    supervisor =  0100
    admin =       1000 (I think this was supposed to read 1 << 3)
    

    Now, you can assign people multiple roles using the bitwise-or operator. This would be a single vertical-bar "|". The bitwise or combines the two numbers bit-by-bit, setting each bit that is set in either of the two operands.

    myRole = customer | employee = 0011
    

    The if-statement you have is intended to tell whether someone has a particular role. It uses bitwise-and: "&". Bitwise-and combines the two numbers, setting a bit only if the bit is set in both the operands.

提交回复
热议问题