gpt4 book ai didi

vb.net - (OrElse 和 Or) 和 (AndAlso 和 And) - 何时使用?

转载 作者:行者123 更新时间:2023-12-03 06:35:08 46 4
gpt4 key购买 nike

(OrElse 和 Or) 和 (AndAlso 和 And) 之间有什么区别?他们的表现有什么不同吗,比如说正确性的好处?有什么情况我不应该使用 OrElse 和 AndAlso 吗?

最佳答案

Or/And始终计算两个1表达式,然后返回结果。它们没有短路。

OrElse/AndAlsoshort-circuiting 。仅当无法仅根据左侧表达式的求值确定结果时,才求值右侧表达式。 (这意味着:OrElse 仅在左侧表达式为 false 时才会计算右侧表达式,而 AndAlso 仅在左侧表达式为 true 时才会计算右侧表达式。)

假设表达式中没有副作用发生,并且表达式不相关(并且忽略任何执行开销),那么它们是相同的。

但是,在许多情况下,表达式相关的。例如,当 List 不为空并且有多个元素时,我们想要做某事:

If list IsNot Nothing AndAlso list.Length > 0 Then .. 'list has stuff

这也可以用来避免“昂贵的”计算(或副作用,恶心!):

If Not Validate(x) OrElse Not ExpensiveValidate(x) Then .. 'not valid

就我个人而言,我发现 AndAlsoOrElse 是在除 1% 或更少之外的所有操作符中使用的正确运算符,希望如此! - 需要副作用的情况。

祝你编码愉快。

<小时/>

1 第一个表达式中抛出的异常将阻止第二个表达式的计算,但这不足为奇..

关于vb.net - (OrElse 和 Or) 和 (AndAlso 和 And) - 何时使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8409467/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com