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 对应 | .net