0

重複の可能性:
コンパイラは、最初の式が false の場合、すべてが true でなければならない式の評価を続行しますか?
熱心な操作と短絡操作の違いは? (| 対 || および & 対 &&)

だからここに私の質問があります。これがあれば

if (Foo() && Bar())
    DoStuff();

Foo() が false を返す場合、Bar() を介して実行されますか? または私が持っている必要がありますか

if (Foo())
    if (Bar())
        DoStuff();

「失敗」する前に必要な最小量だけを実行するようにするには?

4

3 に答える 3

3
if (Foo() && Bar())

この場合 (論理 AND)、最初にFoo()戻り値をチェックし、true を返すBar()場合にのみ実行しFoo()ます。条件のいずれかが false の場合、他の条件はチェックせず、条件を左から右にチェックします。

于 2012-06-26T16:53:00.590 に答える
2

いいえ、false を返すBar()場合は評価されません。Foo()これは C# 演算子の機能です(ステートメント&&に限定されません)。if

条件付き AND 演算子 (&&) は、bool オペランドの論理 AND を実行しますが、必要に応じて 2 番目のオペランドのみを評価します。

于 2012-06-26T16:56:37.447 に答える
1

あなたが探しているのは「短絡」と呼ばれ、はい、.Netはそれをサポートしています。

于 2012-06-26T16:53:44.533 に答える