c#字节AND运算符

Mar*_*rek 0 .net php c#

如何在BYTE和INT之间使用&运算符?

这里说:

http://int64.org/docs/gamestat-protocols/ase.html

但是在php中它的工作却在c#中不...

PHP:

if ($flag & 1)
    ...
}
Run Code Online (Sandbox Code Playgroud)

C#

if (flag & 1)
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

flag & 1部分正在运行 - 但if需要一个布尔表达式.所以你可以这样做:

if ((flag & 1) != 0)
Run Code Online (Sandbox Code Playgroud)

请注意,您必须将括号放在表达式周围,&因为它!=具有更高的优先级(绑定更紧)&.

如果你正在使用一组标志,那么使用枚举通常是一个更好的主意.例如,看看BindingFlags- 您可能会使用:

if ((flags & BindingFlags.Instance) != 0)
Run Code Online (Sandbox Code Playgroud)

这增加了类型的安全性(所以你知道你正在尝试将它与正确的标志进行比较)并减少幻数的使用.