在VB.NET中评估IF语句

8 vb.net evaluation if-statement

对于VB.NET中的以下If语句,将评估条件的顺序是什么?

情况1:

If ( condition1 AND condition2 AND condition3 )
.
.
End If
Run Code Online (Sandbox Code Playgroud)

案例2:

If ( condition1 OR condition2 OR condition3 )
.
.
End If
Run Code Online (Sandbox Code Playgroud)

案例3:

If ( condition1 OR condition2 AND condition3  OR condition4)
.
.
End If
Run Code Online (Sandbox Code Playgroud)

Ger*_*nck 11

VB.Net评估所有条件,因此这里的顺序并不重要.

如果要使用短路,请使用AndAlso和OrElse关键字.


Ant*_*lev 9

从C程序员的角度来看,VB.NET是一个非常奇怪的野兽.正如Gerrie在一个不同的答案中提到的那样,所有三个条件都是完全评估的,没有短路.如果这就是你想要的,那么Also和OrElse可以节省你的一天.

至于最后的if,评估顺序如下:

If ((condition1 OR (condition2 AND condition3))  OR condition4)
Run Code Online (Sandbox Code Playgroud)

根据经验:如果有任何 ambiguitiy,请使用括号明确指定评估顺序.