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是一个短路运算符,或者不是。
通过boolean’或’运算符的定义,如果第一个项是True,那么整体肯定是真的 – 所以我们不需要评估第二个项。
OrElse知道这一点,所以不要尝试和评估temp = 0一旦它确定temp是DBNull.Value
或者不知道这一点,并将永远尝试评估这两个术语。当temp是DBNull.Value时,它不能被比较为零,所以它落在了。
你应该使用…好,无论哪一个有意义。