在Visual Basic中的IF语句中进行多次比较

时间:2013-10-31 10:32:32

标签: .net vb.net

在我的visual basic .net应用程序中,我想进行比较,如

If myObject IsNot Nothing And myObject.property <> 0 Then
...
EndIf

问题是当myObject什么都没有时我得到空引用异常。所以我必须嵌套IF语句:

If myObject IsNot Nothing Then
    If myObject.property <> 0 Then
    ...
    EndIf
EndIf

是否可以在不嵌套IF的情况下进行此比较?

3 个答案:

答案 0 :(得分:6)

您必须使用AndAlso(相当于C#中的&&)。这是执行短路逻辑连接的逻辑运算符。 And执行没有shortcircuit的逻辑运算(相当于C#中的&),从而分析两个操作数。

答案 1 :(得分:2)

AndAlso是一个短路'和'。如果第一部分未评估为真,那么第二部分将不会被评估,因此不会出错

http://msdn.microsoft.com/en-us/library/cb8x3kfz.aspx

答案 2 :(得分:2)

你可以这样试试:

If Not IsNothing(myObject) AndAlso myObject.property <> 0 Then
    ...
EndIf

也许它适合你。