如何评估True和-1的表达式?

时间:2015-09-02 13:03:15

标签: vb.net

表达式True And -1如何评估为-1

我希望第二个操作数(即-1)会自动转换为True,结果为True

我意识到And在这里被解释为逐位AND运算符。但是,当第一个操作数是布尔值并且逻辑解释是可能的时,为什么会出现这种情况呢?

1 个答案:

答案 0 :(得分:4)

And Operator应该如何运作。引用文档:

  

如果操作数由一个布尔表达式和一个数值表达式组成,则Visual Basic将布尔表达式转换为数字值(-1表示 True 和0表示 False )并执行按位操作。

为什么这样做?我们只能推测,但我怀疑有两个原因:

  1. 向后兼容性。 VB6和VBA的行为也是这样的。

  2. 对于逻辑运算,应使用新的短路运算符 AndAlso OrElse 。因此,遗留运算符以及主要用于按位运算是有道理的。