4

私は現在、同僚のために休日の交換を行う必要があり、彼のコードを少し変更する必要があります。

私は多くの条件を見つけました

if (true == variablename) {...}

この構文に特別な何かがあるのだろうか?私たちのほとんどのように、私はただ書くだけです

if (variablename) {...}

代わりは。私をイライラさせるのは、条件の左側にある true です。右側にあるかどうかは、同僚がブール条件で進んでいないことを期待するだけです。

最初に true を入れることでパフォーマンスの違いなどはありますか?

4

3 に答える 3

11

これは、C/C++ の学習の残り物である可能性が高く、このバグに噛まれるのが一般的でした:

if (variablename = true) { ... }

コンパイラがこれについて警告するように調整される前 (比較ではなく代入を行うことに注意してください)、上記のコードはサイレント モードで実行され、バグが発生していました。

ただし、式を逆に書くことを学べば、上記のコードは次の形式でコンパイルされないため、上記のコードに悩まされることはありません。

if (true = variablename) { ... }

ただし、C#では問題ありません。比較なしで(とにかく比較している限り)示したように記述しtrueたり、比較演算子の右側にリテラルを配置したりできます。

于 2013-06-27T16:01:15.003 に答える