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

时间:2013-01-28 09:52:23

标签: c# boolean int implicit-conversion

在C ++中调整旧代码 编译器不传递类型表达式“if(a& b)”

int a = 32;
int b = 1;
if (a & b) {} <--- Compiler Error

从Int到Bool的隐式转换。 我可以改为if ((a & b)! = 0) {} 但是在许多地方阅读和发现它更糟糕。

有什么方法吗?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

在C#中,int非零不会自动评估为trueintint而不是bool,因此if (i)仅在ibool时才有效。