与return语句一起使用时,BitWise OR("|")的含义是什么?

cam*_*elt 1 c# bit-manipulation return

在C#.NET中,有没有人在一个看起来像这样的方法中看到一个return语句?

protected override Buttons GetButtonsToShow()
{
    return Buttons.New | Buttons.Return | Buttons.Delete;
}
Run Code Online (Sandbox Code Playgroud)

这个BitWise运算符怎么样"|" 在这里工作?这个陈述的结果是什么?我知道BitWise运算符在if ... else ...语句等方面是如何工作的,但我从未见过它以这种方式使用过.

Ode*_*ded 7

Buttons是一个标志 枚举.

这使得它可以进行位映射,您可以使用按位运算符组合值.

在这种情况下,它将返回一个值,该值是组合所有三个选项的位图.

这篇博文有很清楚的解释(尽管它&用于示例).