1

重複の可能性:
== 演算子とオペランド

重複の可能性:
C# で if(a==5) と if(5==a) の間に違いはありますか?
== 演算子とオペランド

わかりました、これはばかげた質問かもしれませんが、Google で検索すると (引用符があっても正確なフレーズを実際に検索できないようです)

違いがある場合はどうなりますか

if(false == <somecondition>){

if(<somecondition> == false){

C#で?私は C# の式の評価に精通しており、次のようなことをしている場合に順序がどのように意味を持つかを理解しています。

if(AccountIsInvalid || AccountIsUnregistered)

false==....大きなレッスンは必要ありませんが、ルートを使用することを好む人がいる理由を理解したいと思います。

4

4 に答える 4

3

個人的に、私は何かを偽または真と比較することは決してありません。

私は一緒に行きます:

if (!somecondition) 

また:

if (somecondition)
于 2009-11-16T22:43:46.553 に答える
3

C では、間違いを犯しやすく、比較演算子の代わりに代入演算子を使用する可能性があるため、おそらくこれを行う何らかの理由があったでしょうが、C# では違いはありません。コンパイルが行われます。代入演算子を使用すると警告が表示されます。代入が異なる型 (int など) の場合、結果は if ステートメントの有効な式ではないため、エラーになります。

私はそれを好むだろう

if (!<somecondition>)
{
  ...
}

false (または true) との比較ではありません。

于 2009-11-16T22:44:39.563 に答える
1

最適化または短絡を実行する前に、コンパイラは値を解決する必要が<somecondition>あるため、コンパイラが式を評価する理由はありません。truefalse<somecondition> == falsefalse == <somecondition>

これは確かにスタイルの問題であり、スタイルのみです。

于 2009-11-16T22:46:39.483 に答える
0

これは、条件がブール値に評価される必要があるため、c/c++ のように C# では問題になりません。

于 2009-11-16T22:44:58.223 に答える