在编写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

如果您有很多使用AndOr的代码,请小心,如果第二个条件涉及具有副作用的函数调用,则全局搜索和替换操作可能会更改现有行为。

除非您特别需要AndAlsoOrElse提供的功能,否则我更喜欢使用AndOr

关于vb.net - 哪个对性能更好?和vs And,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6705102/

10-09 13:39