在编写If语句时,我总是在需要时使用And
,例如:
If 1=1 And 2=2 Then
我唯一使用过
AndAlso
的时间是,如果第一个条件为true,第二个条件是否会出错,例如:If Not IsDbNull(Value) AndAlso Value=2 Then
但是,最近我听说
AndAlso
在性能上比And
更好,因为第二个条件仅在第一个条件为true时才读取。在这种情况下,我应该始终只使用
AndAlso
吗? 最佳答案
是的,AndAlso
可以比And
更快,因为如果更早的条件被证明是错误的,它不会评估后续条件。And
是对Visual Basic早期版本的回溯。
大多数现代语言(我会毫不犹豫地说)都使用 bool(boolean) 运算符,这些 bool(boolean) 运算符会短路不需要严格评估的条件。
例如&&
和C风格语言的and运算符都充当AndAlso
。
如果您有很多使用And
和Or
的代码,请小心,如果第二个条件涉及具有副作用的函数调用,则全局搜索和替换操作可能会更改现有行为。
除非您特别需要AndAlso
和OrElse
提供的功能,否则我更喜欢使用And
和Or
关于vb.net - 哪个对性能更好?和vs And,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6705102/