堆叠如果不是很糟糕

时间:2014-10-21 04:43:23

标签: vb.net if-statement syntax

你可以堆叠这些。 还有更好的方法吗?

如果不是VAR_watchfolders_NewFile那么

如果不是VAR_watchfolders_NewFile = VAR_HoldThisVAR那么

我需要阻止列表中的项目被删除,并防止它们在后续列表中重复出现。

3 个答案:

答案 0 :(得分:2)

您可以使用short-circuiting AndAlso operator

If VAR_watchfolders_NewFile IsNot Nothing _
    AndAlso VAR_watchfolders_NewFile <> VAR_HoldThisVAR Then

    ... 
End If

这确保仅在第一个条件评估为True时才评估第二个条件。您还可以将Not ... Is Nothing替换为... IsNot Nothing,将Not ... = ...替换为... <> ...,以提高代码的可读性。

答案 1 :(得分:1)

在VB.NET中,有两个运算符可用于组合多个条件:

即可。如果使用此运算符,则将评估两个条件。所以,如果你使用

If Not VAR_watchfolders_NewFile Is Nothing And Not VAR_watchfolders_NewFile = VAR_HoldThisVAR Then

然后这将失败,因为第二个条件将抛出异常。

<强> AndAlso 即可。如果使用此运算符,则只有在条件为真时才会评估正确条件。这意味着如果您可以安全地使用代码

If Not VAR_watchfolders_NewFile Is Nothing AndAlso Not VAR_watchfolders_NewFile = VAR_HoldThisVAR Then

如果左侧条件为假,则永远不会评估正确的条件。对于C#用户,它与使用&&

相同

答案 2 :(得分:0)

我相信你可以这样做

If Not VAR_watchfolders_NewFile is Nothing And Not VAR_watchfolders_NewFile = VAR_HoldThisVAR Then

如果VAR_watchfolders_NewFile为Nothing,则不会评估第二个表达式,因此您不必担心。