C#。这是一个有效的条件陈述吗?

时间:2010-05-12 11:07:49

标签: c# methods conditional execution

我有两种方法,AB。只有在两个方法成功之后我才能插入到数据库中。那么这是C#中的有效条件语句吗?

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

执行方法A后,我必须执行B。如果两者都成功,我必须进行插入。

6 个答案:

答案 0 :(得分:8)

是的,它是有效的。但请注意,只有B返回true才会执行A()

答案 1 :(得分:2)

这称为short-circuit evaluation

条件将按照出现的顺序进行评估,并且仅在其测试仍然相关时进行评估。也就是说,如果A()失败,则没有理由测试B()。

答案 2 :(得分:0)

正如他们所说,如果A()返回false,则B()不会执行。 如果你想要执行这两个函数我建议像:

bool resultA = A();
bool resultB = B();
if(resultA && resultB)
{
    //insert into db
}

答案 3 :(得分:0)

你的问题已经被其他人回答,但只是为了澄清,因为这里有一些有点误导性的帖子......

&&运营商正在短路

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

&运算符短路

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

如果你的功能有你想要确保的副作用,请使用后者。

答案 4 :(得分:-2)

在两个函数中设置fa = 1 fd = 1。

然后检查

如果(FA FB == == 1) { //做 }

答案 5 :(得分:-7)

应该是

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

这将使两个函数都被执行。