1

簡単な質問(私は思う):これらのコードのどれがC#でより速く実行されるでしょうか?

newSpeed = newSpeed > maxSpeed ? maxSpeed : newSpeed;

また

if (newSpeed > maxSpeed)
{
    newSpeed = maxSpeed;
}
4

3 に答える 3

8

1つ目は常に割り当てを行うのに対し、2つ目は常に割り当てを行うとは限らないため、場合によっては2つ目がより高速になると思います。

たとえば、の場合newSpeed <= maxSpeed、割り当ては行われず、比較のみが行われます。

于 2012-09-28T17:22:58.350 に答える
0

justnSが言ったように、コンパイル中に三項演算子はifステートメントに変換されますが、三項演算子を使用する場合は、ifとelseの部分が必要になりますが、ifステートメントにはelseがありません。したがって、コードを数百万回または数十億回実行すると、顕著な違いが生じる可能性があります。ただし、通常のプログラムを作成する場合は問題ありません。

于 2012-09-28T18:03:27.810 に答える
0

この場合、コンパイラは3行を取り、ifステートメントを作成します...したがって、まったく同じものになります。

リンク: http: //www.dotnetperls.com/ternary

于 2012-09-28T17:23:53.170 に答える