4

私には2つの方法がAありBます。2つのメソッドが成功した後でのみ、データベースに挿入する必要があります。それで、これはC#の有効な条件付きステートメントですか?

if (A() && B())
{
    //insert into db
}

メソッドの実行後、実行Aする必要がありBます。両方が成功した場合、私は挿入をしなければなりません。

4

6 に答える 6

8

はい、それは有効です。ただし、trueが返されたB場合にのみ実行されることに注意してください。A()

于 2010-05-12T11:08:51.350 に答える
2

これは短絡評価と呼ばれます

条件は、それらのテストがまだ関連している場合にのみ、出現順に評価されます。つまり、A()が失敗した場合、B()をテストする理由はありません。

于 2010-05-12T11:47:36.343 に答える
0

彼らが言うように、A()がfalseを返す場合、B()は実行されていません。両方の機能を実行したい場合は、次のようなものをお勧めします。

bool resultA = A();
bool resultB = B();
if(resultA && resultB)
{
    //insert into db
}
于 2010-05-12T11:51:45.850 に答える
0

あなたの質問はすでに他の人によって答えられていますが、ここに少し誤解を招く投稿がいくつかあるので明確にするために...

&&オペレーターが短絡しています

if (false && Foo()) // Foo() is not run

&オペレーターが短絡していない

if (false & Foo()) // Foo() is run

関数に確実にしたい副作用がある場合は、後者を使用してください。

于 2010-05-12T12:17:30.827 に答える
-2

両方の関数内でfa=1 fd=1を設定します。

次に確認してください

if(fa == fb == 1){//実行}

于 2010-05-12T12:01:27.743 に答える
-7

そのはず

if(A()) 
{ 
   if(B())
   {
    //insert into db 
   }
} 

これにより、両方の関数が実行されるようになります。

于 2010-05-12T11:11:50.733 に答える