编译器错误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) {}但是在许多地方阅读和找到它更糟糕。

有什么办法吗?

编译器错误CS0029:“if (int & int)”

C# 中没有隐式转换。if只接受布尔值。

你必须做的:if ((a & b) != 0) {}

在 C# 中,非零int的计算结果不会自动trueintint而不是bool,所以if (i)只有在ibool时才有效。