MSDN上的解释:
And:对两个Boolean表达式执行逻辑和。
AndAlso:与AndAlso类似,关键差异是AndAlso显示短路行为,如果AndAlso中的第一个表达式为False,则不计算第二个表达式。
or:对两个Boolean表达式执行逻辑或。
orElse:与Or类似,关键差异是OrElse显示短路行为,如果OrElse中的第一个表达式为True,则不计算第二个表达式。
此时才明白上面的代码是两个判断都执行了,哪怕obj为Nothing时,obj.IsDisposed也会执行到,自然就会出现Null异常了,把Or改成OrElse后问题解决。
VB.net 与 C# 的对应
And 对应 &&
AndAlso 对应 &
or 对应 ||
orElse 对应 |
And:对两个Boolean表达式执行逻辑和。
AndAlso:与AndAlso类似,关键差异是AndAlso显示短路行为,如果AndAlso中的第一个表达式为False,则不计算第二个表达式。
or:对两个Boolean表达式执行逻辑或。
orElse:与Or类似,关键差异是OrElse显示短路行为,如果OrElse中的第一个表达式为True,则不计算第二个表达式。
此时才明白上面的代码是两个判断都执行了,哪怕obj为Nothing时,obj.IsDisposed也会执行到,自然就会出现Null异常了,把Or改成OrElse后问题解决。
VB.net 与 C# 的对应
And 对应 &&
AndAlso 对应 &
or 对应 ||
orElse 对应 |
本文详细解析了VB.NET中的逻辑运算符And、AndAlso、Or和OrElse的区别及应用场景,特别是短路行为的实现方式,并给出了这些运算符与C#中对应运算符的关系。

561

被折叠的 条评论
为什么被折叠?



