当前半部分为空时,防止if语句的后半部分

时间:2013-07-09 15:22:22

标签: vb.net if-statement nothing

我在VB.net中有一个声明,我认为我写的正确,以防止后半部分被评估。它看起来像这样:

  

if((myDataSet2 IsNot Nothing)或myDataSet2.Tables(“CurData”)。Rows.Count> 0)

然而,它不会跳过第二个表达式“myDataSet2.Tables(”CurData“)。Rows.Count> 0”就像我想要的那样。

我应该改变什么?

2 个答案:

答案 0 :(得分:8)

使用OrElse运算符。

If myDataSet2 IsNot Nothing OrElse myDataSet2.Tables("CurData").Rows.Count > 0

编辑:请参阅我对您原始问题的评论。你可能正在寻找:

If myDataSet2 IsNot Nothing AndAlso myDataSet2.Tables("CurData").Rows.Count > 0

这将检查myDataSet2是否为空。假设它不是,它将检查至少有一行。如果为null,则不会检查第二个条件。

答案 1 :(得分:3)

您需要将第二个语句放入第一个if子句中。

像这样:

If(statement1) then
   If(statemtent2) then
   Else
   End if
Else
End If

因为它现在都被评估,如果其中一个是真的,你的if子句中的内容将被执行。