我在Excel VBA中进行了测试:
If (test1) And (test2) And (test3) Then 'do something End If
在C,Java等中,test1将首先运行,然后运行test2,然后运行test3.重要的是,如果test1为false,则整个测试都是错误的,因此剩余的测试不会运行.
在这种情况下,VBA会发生这种情况吗?如果是这样,测试运行的顺序是什么?
在.NET之前的所有VB中都没有短路这样的东西.即使不需要,也将评估所有表达式.如果你想要短路,请做嵌套的IF.