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. javascriptで '==='演算子はいつ使うべきですか?
- 4. C++で標準の演算子よりもmemcpyを使うべきですか?
- 5. PythonでAND演算子とNOT演算子を使用する
- 6. ||演算子は=演算子と同じですか?
- 7. グループで演算子以上の演算子を使用できますか?
- 8. なぜ算術演算子とアクセス演算子を使用するときにアップキャストするのですか?
- 9. 私はいつもconnection.closeを使うべきですか?
- 10. 私たちを使用できますか?演算子のSQL
- 11. VBScriptの+演算子と&演算子の違いは何ですか?
- 12. Xval演算子と比較演算子?
- 13. 演算子if演算子
- 14. ビット演算子はいつ使用しますか?
- 15. フリップフロップ演算子とは何ですか?
- 16. ##演算子とは何ですか?
- 17. JQGrid Advance Search - 「AND」演算子と「OR」演算子を同時に使用できますか?
- 18. インライン演算子は良いですか?
- 19. 演算子 '=>'はC#でどういう意味ですか?
- 20. です!演算子はJavascriptでも必要ですか?
- 21. 参照演算子と参照解除演算子について理解していますか?
- 22. オーバーロード比較です演算子「無効な演算子は、<」
- 23. 派生クラスで基本クラス演算子=(代入演算子)を使用しないのはなぜですか?
- 24. * =演算子は
- 25. イテレータまたはアクセス演算子でベクトルを反復すべきですか?
- 26. ハスケルの/ =演算子はどういう意味ですか?
- 27. ( "!")演算子はどこでも有効ですか?
- 28. PHPと??演算子
- 29. !=演算子とファイルストリーム
- 30. DocumentBuilderFactoryと演算子
関数を実行するためにロジックコードを使用することは不明確であり、論理は明快さと保守性のためにロジックに依存しないように設計する必要があります。 –
私は同意します。ここの本当の教訓は、それが副作用であることを明確に示さないコードを書かないことです! –