为什么和vb.net中的运算符

时间:2017-04-26 09:15:57

标签: vb.net

我在检查多个条件时总是使用AndAlso,因为它不会评估右侧,除非留下一个是真的。我没有看到任何人想要评估右侧的情况,即使左侧失败也是如此。如果需要,那么他们为什么不在C#中包含相同内容。

更新

正如已接受的答案所指出的那样,它存在是因为它用于按位运算,这很好但我仍然认为它们会超载And运算符以满足这两个目的,而不是创建AndAlso。如果有人可以为它倾注一些亮点,这个问题仍然是开放的:)

2 个答案:

答案 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