按位'&'操作员在uint

时间:2015-04-07 10:05:36

标签: c# casting hex

我需要执行按位'&'对类型uint的值进行操作。

enum MsgType : ulong
{
Begin = 0x00000001,
}

unit number= 0x00000002;

if (number & MsgType.Begin == MsgType.Begin)

//无效

发出错误:

Operator '&' cannot be applied on operands of type 'uint' or 'bool'

如何施展它?

1 个答案:

答案 0 :(得分:1)

它似乎是operator precedence in C#的问题,使用括号生成正确的编译器输出

,而不是:

if (number & MsgType.Begin == MsgType.Begin)

这样做:

if ((number & MsgType.Begin) == MsgType.Begin)

根据this related question