2012-07-31 51 views
1

當我這樣做,我得到一個消息,說表達預計VB.NET表達預計

 If (Not (String.IsNullOrEmpty(e.Item.DataItem("DueDate")) && String.IsNullOrEmpty(e.Item.DataItem("ActualDate")))) Then 


    End If 
+0

請注意,如果您更熟悉C#,通常可以用[C#to VB.Net Converter]獲得很好的結果(http://www.developerfusion.com/tools/convert/csharp-to-vb/)。 – mellamokb 2012-07-31 20:43:54

+0

作爲一個方面說明,如果您使用'Not 或不是'而不是'Not()',可以通過[De Morgan's law](http:///en.wikipedia.org/wiki/De_Morgan's_laws)。 – Zhihao 2012-07-31 20:46:23

回答

1

如果是VB.NET則AND運算符AndAlso

AndAlso和它的兄弟OrElse因爲:

  • 避免執行部分邏輯表達式以避免問題。通過不執行比任何更多的是複合式 的
  • 代碼優化需要

所以,你的代碼應該是

If (Not (String.IsNullOrEmpty(e.Item.DataItem("DueDate")) AndAlso String.IsNullOrEmpty(e.Item.DataItem("ActualDate")))) Then 

    .... 
End If 
+0

這也是(短路和)。 OrElse被短路或者 – 2012-07-31 20:44:02

+0

哇@Trekstuff你很快,已經糾正了這個事故 – Steve 2012-07-31 20:47:01

+0

我猜想我在同一時間回答並且想要避免混淆 – 2012-07-31 20:49:44

1

代替& &使用AndAlso