2008-09-10 23 views

答えて

32

MSDNから:

短絡トレードオフ

短絡するには、論理演算の結果を変更することはできません式を評価しないことによって、パフォーマンスを向上させることができます。しかし、その式が追加のアクションを実行すると、短絡はそれらのアクションをスキップします。たとえば、式にFunctionプロシージャの呼び出しが含まれている場合、式が短絡していて関数に含まれている追加コードが実行されない場合、そのプロシージャは呼び出されません。プログラムロジックがその追加コードのどれかに依存している場合は、演算子の短絡を避けるべきです。

+32

関数を実行するためにロジックコードを使用することは不明確であり、論理は明快さと保守性のためにロジックに依存しないように設計する必要があります。 –

+5

私は同意します。ここの本当の教訓は、それが副作用であることを明確に示さないコードを書かないことです! –

15

確か:の両方の式のが評価されていることを確認したい場合は、これは、たとえば、両側が他の操作の結果としてブール値を返すメソッド呼び出しである場合に当てはまります。

しかし、一般的には、使用するたびにAndAlso/OrElseを使用してください。& &/|| C/C++/C#では、当然大部分です。

関連する問題