枚举分配看起来不同

时间:2013-11-27 14:24:45

标签: c# .net c#-4.0

如何分配此枚举?每个人的价值是什么?

public enum SiteRoles
{
    User = 1 << 0,
    Admin = 1 << 1,
    Helpdesk = 1 << 2
}

这样分配的用途是什么?

Used in this post

1 个答案:

答案 0 :(得分:10)

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

它允许对枚举值进行按位运算。

1 << 0 = 1 (binary 0001)
1 << 1 = 2 (binary 0010)
1 << 2 = 4 (binary 0100)