你可以堆叠这些。 还有更好的方法吗?
如果不是VAR_watchfolders_NewFile那么
如果不是VAR_watchfolders_NewFile = VAR_HoldThisVAR那么
我需要阻止列表中的项目被删除,并防止它们在后续列表中重复出现。
答案 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,则不会评估第二个表达式,因此您不必担心。