Possible Duplicate:
Should I always use the AndAlso and OrElse operators?
在针对所有场景的实际实现中,逻辑表达式将为And
和AndAlso
返回相同的布尔值,
为什么当前一个条件为false时,我们不总是使用AndAlso
并保存下一个条件的处理时间?换句话说,为什么And
仍在使用?
最佳答案
VB.NET中的And运算符执行两项工作,它既是逻辑运算符又是数学运算符。 Visual Basic的早期版本无法区分两者。通过设计,该语言被设计为易于使用,并迫使Visual Basic程序员学习差异,这是语言设计人员希望避免的事情。
尽管它使该语言有些怪异,但效果很好。例如,True的值不是1,就像在许多语言中一样,它是-1。您从CInt(True)获得的值。它允许忽略运算符的两种用法之间的区别,例如,当If()语句使用And且左侧为Integer且右侧为Boolean时,它仍然可以很好地工作。
但是And运算符同时扮演两个角色,这是一个非常具体的问题。常见用法是编写如下语句:
If ix < array.Length And array(ix) <> 42 Then
'' do something
End If
If ix < array.Length AndAlso array(ix) <> 42 Then
'' do something
End If
关于.net - 为什么AndAlso不能代替And ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13782516/