And
オペレータではなくAndAlso
オペレータを使用したくない場合がありますか? …またはOr
演算子ではなくOrElse
演算子を使用したくない場合は、私はいつもAndAlsoとOrElse演算子を使うべきですか?
44
A
答えて
32
MSDNから:
短絡トレードオフ
短絡するには、論理演算の結果を変更することはできません式を評価しないことによって、パフォーマンスを向上させることができます。しかし、その式が追加のアクションを実行すると、短絡はそれらのアクションをスキップします。たとえば、式にFunctionプロシージャの呼び出しが含まれている場合、式が短絡していて関数に含まれている追加コードが実行されない場合、そのプロシージャは呼び出されません。プログラムロジックがその追加コードのどれかに依存している場合は、演算子の短絡を避けるべきです。
15
確か:の両方の式のが評価されていることを確認したい場合は、これは、たとえば、両側が他の操作の結果としてブール値を返すメソッド呼び出しである場合に当てはまります。
しかし、一般的には、使用するたびにAndAlso/OrElseを使用してください。& &/|| C/C++/C#では、当然大部分です。
関連する問題
- 1. "OrElse"と "AndAlso"(Rubyの同等演算子)
- 2. (OrElseとOr)と(AndAlsoとAnd) - いつ使用しますか?
- 3. PythonのAndAlso(&&)とOrElse(||)論理演算子に相当するものは何ですか?論理演算のための.NET VBとC#で
- 4. javascriptで '==='演算子はいつ使うべきですか?
- 5. C++で標準の演算子よりもmemcpyを使うべきですか?
- 6. FindFirstとorElse演算子が別のクラスタイプを返す
- 7. PythonでAND演算子とNOT演算子を使用する
- 8. ":"演算子は代入演算子 "="と同等ですか?
- 9. ||演算子は=演算子と同じですか?
- 10. グループで演算子以上の演算子を使用できますか?
- 11. If文で演算子2演算子を使用できますか?
- 12. 私はいつもconnection.closeを使うべきですか?
- 13. なぜ算術演算子とアクセス演算子を使用するときにアップキャストするのですか?
- 14. 私はswitchMap、flatMapまたはその他のrxjs演算子をAngularで使うべきでしょうか?
- 15. 私たちを使用できますか?演算子のSQL
- 16. 私たちはIS演算子を他の演算子に置き換えることができます
- 17. VBScriptの+演算子と&演算子の違いは何ですか?
- 18. XOR演算子とstd :: ostream演算子
- 19. Xval演算子と比較演算子?
- 20. 共有ポインタ[]演算子と++演算子
- 21. Pythonで//演算子を使うのはいつですか?それはいつお勧めですか?
- 22. は、Invoke演算子&演算子はKotlin
- 23. ()=>演算子とは何ですか?
- 24. ##演算子とは何ですか?
- 25. フリップフロップ演算子とは何ですか?
- 26. ビット演算子はいつ使用しますか?
- 27. スウィフトコンパイラが等価演算子で等価演算子を使用するかどうかで等価演算子を使用する理由
- 28. 演算子( - - )()演算子C#
- 29. 演算子if演算子
- 30. Cでのラムダ計算:ブール演算子とNOT演算子
関数を実行するためにロジックコードを使用することは不明確であり、論理は明快さと保守性のためにロジックに依存しないように設計する必要があります。 –
私は同意します。ここの本当の教訓は、それが副作用であることを明確に示さないコードを書かないことです! –