为啥和运算符在 vb.net
Posted
技术标签:
【中文标题】为啥和运算符在 vb.net【英文标题】:Why And operator in vb.net为什么和运算符在 vb.net 【发布时间】:2017-09-23 14:28:08 【问题描述】:我总是在检查多个条件时使用AndAlso
,因为它不会评估右侧,除非左侧为真。我没有看到有人愿意评估右侧的任何情况,即使左侧失败。如果需要,为什么他们没有在C#
中包含相同的内容。
更新:
正如接受的答案所指出的那样,它的存在是因为它用于按位运算,这已经足够好了,但我仍然认为他们会重载 And
运算符来满足这两个目的,而不是创建 AndAlso
。如果有人可以对此有所了解,那么这个问题仍然存在:)
【问题讨论】:
它们在 c# 中包含相同的内容。在 c# 中,您可以使用&
(And) 或 &&
(AndAlso)
c# 确实有相同的。 & = And,&& = AndAlso。
@Pikoh 谢谢,从来不知道 :)
在this question上看到一个好的答案
来自 MSFT 的 Paul Vick,他参与了引入 AndAlso 的决定:The Ballad of AndAlso and OrElse。
【参考方案1】:
他们在C#
中包含相同的内容。在C#
中,您可以使用&
(And) 或&&
(AndAlso)。
在比较 布尔值 时,我无法想象非短路运算符的实际用例,但 And
可以与数值一起使用,然后进行按位比较。这就是它存在的原因。但是在比较布尔类型时,您将始终使用短路版本。
【讨论】:
【参考方案2】:And 也是位运算符。这是一个显示 And 和 AndAlso 混合的示例。
Dim foo? As Integer = 5
If foo.HasValue AndAlso (foo And 1) = 1 AndAlso (foo And 4) = 4 Then
Stop
End If
【讨论】:
以上是关于为啥和运算符在 vb.net的主要内容,如果未能解决你的问题,请参考以下文章