如果声明逻辑 - 从左到右阅读?

时间:2015-06-25 13:23:33

标签: vb.net if-statement

我在vb.net中有一个if语句,其内容如下:

If String.IsNullOrEmpty(someDate) Or CDate(someDate) > DateTime.Now Then
    'Do stuff here
End If

当someDate = Nothing时,app barfs。我可以发誓,这些语句从左到右阅读,一旦找到匹配条件就会进入If代码块。

我可以编写另一个只进行空检查的语句。这导致没有错误。有人可以澄清这个吗?

1 个答案:

答案 0 :(得分:2)

他们从左到右,问题是您使用Or来评估每个条件。您需要使用短路版本OrElse

If String.IsNullOrEmpty(someDate) OrElse CDate(someDate) > DateTime.Now Then
    'Do stuff here
End If