我见过类似的问题,因为我必须与VB.net合作完成一个项目,我觉得很简单。
If (myValue IsNot Nothing) And (myValue.Length > 12) Then
' do some stuff
End If
现在当myValue为Nothing时,它会给我null引用异常。我也试过了,
If (Not myValue Is Nothing) And (myValue.Length > 12) Then
' do some stuff
End If
在我非常习惯的C#中它很容易但是在VB.net中我找不到任何方式。
答案 0 :(得分:6)
使用AndAlso
代替And
(和OrElse
代替Or
)。
AndAlso
对两个表达式执行短路逻辑连接。 And
即使第一个已经返回False
,也会评估两者。
旁注:出于同样的原因,您还应该使用If
-operator而不是旧的VB函数IIf
。