私には2つの方法がAありBます。2つのメソッドが成功した後でのみ、データベースに挿入する必要があります。それで、これはC#の有効な条件付きステートメントですか?
if (A() && B())
{
//insert into db
}
メソッドの実行後、実行Aする必要がありBます。両方が成功した場合、私は挿入をしなければなりません。
私には2つの方法がAありBます。2つのメソッドが成功した後でのみ、データベースに挿入する必要があります。それで、これはC#の有効な条件付きステートメントですか?
if (A() && B())
{
//insert into db
}
メソッドの実行後、実行Aする必要がありBます。両方が成功した場合、私は挿入をしなければなりません。
はい、それは有効です。ただし、trueが返されたB場合にのみ実行されることに注意してください。A()
これは短絡評価と呼ばれます
条件は、それらのテストがまだ関連している場合にのみ、出現順に評価されます。つまり、A()が失敗した場合、B()をテストする理由はありません。
彼らが言うように、A()がfalseを返す場合、B()は実行されていません。両方の機能を実行したい場合は、次のようなものをお勧めします。
bool resultA = A();
bool resultB = B();
if(resultA && resultB)
{
//insert into db
}
あなたの質問はすでに他の人によって答えられていますが、ここに少し誤解を招く投稿がいくつかあるので明確にするために...
&&オペレーターが短絡しています
if (false && Foo()) // Foo() is not run
&オペレーターが短絡していない
if (false & Foo()) // Foo() is run
関数に確実にしたい副作用がある場合は、後者を使用してください。
両方の関数内でfa=1 fd=1を設定します。
次に確認してください
if(fa == fb == 1){//実行}
そのはず
if(A())
{
if(B())
{
//insert into db
}
}
これにより、両方の関数が実行されるようになります。