C#。这是一个有效的条件语句吗?

发布于 2024-09-01 10:16:42 字数 225 浏览 5 评论 0原文

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

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

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

I have two methods, A and B. Only after the success of two the methods I have to insert into a database. So is this a valid conditional Statement in C#?

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

After the execution of method A I have to execute B. If both are successful I have to do the insert.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

念三年u 2024-09-08 10:16:42

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

Yes it is valid. But note that B will only execute if A() returns true.

心头的小情儿 2024-09-08 10:16:42

这称为短路评估

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

This is called short-circuit evaluation

The conditions will be evaluated in the order of appearance, and only if their testing is still relevant. That is, if A() fails, there is no reason to test B().

满身野味 2024-09-08 10:16:42

正如他们所说,如果 A() 返回 false,则 B() 不会执行。
如果您希望执行这两个函数,我建议如下:

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

As they say B() is not executing if A() returns false.
If you want both functions to be executed I recommend something like:

bool resultA = A();
bool resultB = B();
if(resultA && resultB)
{
    //insert into db
}
空心空情空意 2024-09-08 10:16:42

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

&& 运算符短路

if (false && Foo()) // Foo() 未运行

& 运算符短路

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

如果您想确保您的函数具有副作用,请使用后者。

Your question has already been answered by others, but just to clarify as there are a couple of slightly misleading posts on here...

The && operator is short-circuiting

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

The & operator is not short-circuiting

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

Use the latter if your functions have side effects which you want to ensure.

美羊羊 2024-09-08 10:16:42

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

然后检查

if(fa==fb==1)
{
//做
}

set fa=1 fd=1 inside both function.

Then check

if(fa==fb==1)
{
//do
}

秋凉 2024-09-08 10:16:42

应该是

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

这将注意这两个函数都被执行。

It should be

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

This will take care that both the functions are getting executed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文