【问题标题】:Bitwise '&' operator on uintuint 上的按位“&”运算符
【发布时间】:2015-06-11 21:28:14
【问题描述】:

我需要对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'

如何投射?

【问题讨论】:

标签: c# casting hex


【解决方案1】:

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

即代替这个:

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

这样做:

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

根据this related question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2022-10-13
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    相关资源
    最近更新 更多