首页 > 解决方案 > 运算符“<<”不能应用于“bool”和“int”类型的操作数

问题描述

这是我的代码的一部分

ushort code = ...;
...
code <<= 1;
code |=  (NextBit(ref isEndOfScan) << 0); //ERROR

bool NextBit(ref bool isEndOfScan)返回布尔值

我正在将我的代码从 c++ 重写为 c#。我试图将函数结果转换为 int 或 writefalse而不是0,但没有任何帮助。
我想设置 0 位变量code

标签: c#

解决方案


C++ 允许一些 C# 不允许的转换 - 特别是围绕布尔值。

在这种情况下,您可以只使用条件运算符将返回值视为 1 或 0:

code |= NextBit(ref isEndOfScan) ? 1 : 0;

推荐阅读