2017-05-08 21 views
3

C#では、なぜ最初のif文でコンパイルエラーが発生しますが、2番目のコンパイルエラーはありません。誰かが説明できますか?コンパイラエラーCS0019:2つの整数を比較する

1)if(num & 1 == 1) { Console.WriteLine("Test"); }

これは私を与える:エラーCS0019オペレータ '&は、' タイプ 'のint' と 'ブール' のオペランドに適用することはできません。

2)

var x = num & 1; 
if (x == 1) { Console.WriteLine("Test"); } 

これは完全にコンパイルされます。

+0

'if(num && 1 == 1){Console.WriteLine(" Test "); }は正しいものです。 'bool'を必要とするif-conditionでビット単位のANDを使うことはできません。代わりに比較AND(' && ')を使用してください。 –

答えて