Skip to content

AndAlso 运算符

对两个 Boolean 表达式执行短路逻辑合取运算。如果左操作数求值为 False,则不再对右操作数求值。

INFO

AndAlso 是twinBASIC扩展。经典 And 运算符总是对两个操作数求值并返回按位结果;AndAlso 仅在需要时才对右操作数求值,且始终返回 Boolean

语法:

result = expression1 AndAlso expression2

result
Boolean 变量。
expression1, expression2
任何求值为 Boolean(或可强制转换为 Boolean)的表达式。

如果 expression1False,则 resultFalse,且不再求值 expression2。否则对 expression2 求值,其 Boolean 值即为 result

这是标准的"短路AND"。当 expression2 依赖于 expression1 成功时非常有用——例如,空值检查保护属性访问。

示例

通过先验证对象引用来保护属性访问:

vb
If obj IsNot Nothing AndAlso obj.IsReady Then
    ' Safe to call - obj.IsReady is only evaluated when obj is non-Nothing.
    obj.DoWork
End If

与使用 And 的等价代码对比,当 objNothing 时会崩溃,因为两个操作数总是被求值:

vb
' WRONG - obj.IsReady is evaluated even when obj is Nothing.
If obj IsNot Nothing And obj.IsReady Then
    obj.DoWork
End If

另请参阅

twinBASIC及其LOGO版权为作者"韦恩"所有