c# - 为什么有人会在枚举声明中使用 << 运算符?

标签 c# enums operators

我正在查看我目前在我的项目中的代码,发现了这样的东西:

public enum MyEnum
{
    open     = 1 << 00,
    close    = 1 << 01,
    Maybe    = 1 << 02,
    ........
}

<<操作数是移位操作数,它将第一个操作数向左移动第二个操作数中指定的位数。

但为什么有人会在 enum 中使用它?声明?

最佳答案

这允许你做这样的事情:

var myEnumValue = MyEnum.open | MyEnum.close;

无需计算 2 的倍数的位值。

(像这样):

public enum MyEnum
{
    open     = 1,
    close    = 2,
    Maybe    = 4,
    ........
}

关于c# - 为什么有人会在枚举声明中使用 << 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17888141/

相关文章:

c# - Thread.Sleep 与 Task.Delay?

python - 如何从值字典构造 enum.Enum ?

sql-server - SQL Server 中的按位运算

c# - 如何从种子中生成随机的人类可读颜色? C#

c# - .NET 编译器如何比较两个字符串?

c++ - '=' 应初始化所有枚举成员或仅初始化第一个;

c# - 乘法运算符重载修改原始变量(C#)?

javascript - 任何使 JavaScript 比较始终为真的值?

c# httpclient POST 请求 : cant send special characters

Kotlin:如果 E 是实现接口(interface) I 的枚举类,则从返回类型为 Array<I> 的函数返回 Array<E>