or 和 OrElse 有什么区别?
if temp is dbnull.value or temp = 0
产生错误:
Operator '=' is not defined for type 'DBNull' and type 'Integer'.
虽然这个很有魅力!?
if temp is dbnull.value OrElse temp = 0
最佳答案
OrElse
是一个短路运算符,Or
不是。
根据 bool “或”运算符的定义,如果第一项为 True,则整体肯定为 true - 因此我们不需要计算第二项。
OrElse
知道这一点,所以不要尝试评估 temp = 0
一旦确定temp Is DBNull.Value
Or
不知道这一点,并且总是尝试评估这两个术语。当temp Is DBNull.Value
,无法与零比较,所以就倒下了。
你应该使用......好吧,无论哪个有意义。
关于vb.net - Or 与 OrElse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1170754/