枚举分配看起来不同

Bil*_*lla 4 .net c# c#-4.0

如何分配这个枚举?每个人的价值是多少?

public enum SiteRoles
{
    User = 1 << 0,
    Admin = 1 << 1,
    Helpdesk = 1 << 2
}
Run Code Online (Sandbox Code Playgroud)

分配这样的用途有什么用?

在这篇文章中使用

dee*_*see 10

他们正在制造一些旗帜.他们不是将值写为1,2,4,8,16等,1而是将值移动乘以2.可以说它更容易阅读.

它允许对枚举值进行逐位运算.

1 << 0 = 1 (binary 0001)
1 << 1 = 2 (binary 0010)
1 << 2 = 4 (binary 0100)
Run Code Online (Sandbox Code Playgroud)

  • @JensKloster当然,这就是为什么我没有直截了当地说"它更容易阅读"哈哈 (3认同)
  • "有人可能会说它更容易阅读.人们也可以说它不是:) (2认同)