我在检查多个条件时总是使用AndAlso
,因为它不会评估右侧,除非留下一个是真的。我没有看到任何人想要评估右侧的情况,即使左侧失败也是如此。如果需要,那么他们为什么不在C#
中包含相同内容。
更新
正如已接受的答案所指出的那样,它存在是因为它用于按位运算,这很好但我仍然认为它们会超载And
运算符以满足这两个目的,而不是创建AndAlso
。如果有人可以为它倾注一些亮点,这个问题仍然是开放的:)
答案 0 :(得分:1)
他们在C#
中包括了相同内容。在C#
中,您可以使用&
(和)或&&
(AndAlso)。
在比较布尔值时,我可以想象没有用于非短路运算符的真实用例,但And
可以与数值一起使用,然后进行逐位比较。这就是它存在的原因。但是在比较布尔类型时,您将始终使用短路版本。
答案 1 :(得分:0)
也是一点运算符。这是一个显示And和AndAlso的混合的例子。
Dim foo? As Integer = 5
If foo.HasValue AndAlso (foo And 1) = 1 AndAlso (foo And 4) = 4 Then
Stop
End If