加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – Shortcircuiting:OrElse与Or结合使用

发布时间:2020-12-17 00:06:19 所属栏目:大数据 来源:网络整理
导读:如果我有以下…… a OrElse b ……并且a是真,那么显然b永远不会被评估.但是,如果我添加一个Or,那么呢? a OrElse b Or c 是否应该评估?如果我放入一些括号怎么办? 如果这是基本的,请道歉.当然我可以自己测试答案,但我无法在这里或其他地方找到这个问题的答
如果我有以下……
a OrElse b

……并且a是真,那么显然b永远不会被评估.但是,如果我添加一个Or,那么呢?

a OrElse b Or c

是否应该评估?如果我放入一些括号怎么办?

如果这是基本的,请道歉.当然我可以自己测试答案,但我无法在这里或其他地方找到这个问题的答案.很多关于Or与OrElse的问题,但没有与OrElse打交道的问题

这是运算符优先级问题.相关文档在这里:
http://msdn.microsoft.com/en-us/library/fw84t893.aspx?ppud=4

重要摘录:

  • Operators with equal precedence are evaluated left to right in the order in which they appear in the expression.

Inclusive disjunction (Or,OrElse)

所以我们在这里学到的是Or和OrElse具有相同的优先级,并且具有相同优先级的运算符从左到右进行求值.

因此,我希望在a为真的情况下,不评估b.但是,c仍然会.如果a为假,则评估b,无论b的值如何,Or运算符都将评估c.所以,是的,总是评估c.

实际上,除非你有充分的理由使用Or,否则你通常应该在代码中使用OrElse.或者现在主要是为了向后兼容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读