Or 与 OrElse [英] Or versus OrElse

查看:54
本文介绍了Or 与 OrElse的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

orOrElse 有什么区别?

if temp is dbnull.value or temp = 0

产生错误:

未为类型DBNull"和类型整数"定义运算符=".

Operator '=' is not defined for type 'DBNull' and type 'Integer'.

虽然这个效果很好!?

if temp is dbnull.value OrElse temp = 0

推荐答案

OrElse 是一个 短路 操作符,Or 不是.

OrElse is a short-circuiting operator, Or is not.

根据布尔运算符或"的定义,如果第一项为真,则整体肯定为真——因此我们不需要评估第二项.

By the definition of the boolean 'or' operator, if the first term is True then the whole is definitely true - so we don't need to evaluate the second term.

OrElse 知道这一点,因此一旦确定 temp 是 DBNull.Value

OrElse knows this, so doesn't try and evaluate temp = 0 once it's established that temp Is DBNull.Value

Or 不知道这一点,并且将始终尝试评估这两个术语.当temp Is DBNull.Value 时,它不能与零比较,所以它倒了.

Or doesn't know this, and will always attempt to evaluate both terms. When temp Is DBNull.Value, it can't be compared to zero, so it falls over.

你应该使用......好吧,哪个有意义.

You should use... well, whichever one makes sense.

这篇关于Or 与 OrElse的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆