编译器错误CS0029:“if (int & int)”
本文关键字:int amp CS0029 错误 if 编译器 | 更新日期: 2023-09-27 17:56:13
改编C++中的旧代码编译器不传递类型表达式"if (a & b)"
int a = 32;
int b = 1;
if (a & b) {} <--- Compiler Error
从 Int 到布尔值的隐式转换。我可以更改为if ((a & b)! = 0) {}
但是在许多地方阅读和找到它更糟糕。
有什么办法吗?
C# 中没有隐式转换。if
只接受布尔值。
你必须做的:if ((a & b) != 0) {}
在 C# 中,非零int
的计算结果不会自动true
。int
是int
而不是bool
,所以if (i)
只有在i
是bool
时才有效。