c# - 运算符“<<”不能应用于“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# 不允许的转换 - 特别是围绕布尔值。
在这种情况下,您可以只使用条件运算符将返回值视为 1 或 0:
code |= NextBit(ref isEndOfScan) ? 1 : 0;
推荐阅读
- python - 迭代重新加权最小二乘
- php - Opencart 3 在标题中禁用日期
- c - 命令行参数上的 atoi 函数
- ios - Swift 如何在播放暂停后保持锁定屏幕音频控件可用
- spring-boot - 创建 Spring Starter 项目时 POM 文件出错
- javascript - 使用 React 钩子 useEffect 进行链式 API 调用
- mysql - 如何从存储在一列中的 json 中获取前 5 个值?
- c - 装配移动指令似乎没用
- windows - Powershell 脚本独立运行,但在作为可执行文件运行时出现“方法调用失败”错误
- reactjs - NextJS - ReferenceError:未定义窗口