3

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

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

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

有没有办法解决?

4

2 回答 2

5

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

你所要做的 :if ((a & b) != 0) {}

于 2013-01-28T09:53:27.697 回答
3

在 C# 中,int非零值不会true自动评估为。Anint是 anint而不是 a bool,因此if (i)仅当i是 a时才有效bool

于 2013-01-28T09:54:44.617 回答