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自動的に評価されません。はintであり、intではないためbool、がであるif (i)場合にのみ機能します。ibool

于 2013-01-28T09:54:44.617 に答える