2012-07-31 4 views
1

Quand je fais ce qui suit, je reçois un message disant Expression ExpectedVB.NET Expression Expected

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


    End If 
+0

Notez que si vous êtes plus familier avec C#, vous pouvez généralement obtenir de bons résultats avec le [Convertisseur C# en VB.Net] (http://www.developerfusion.com/tools/convert/csharp-to-vb/). – mellamokb

+0

En note, vous pouvez vous débarrasser de certaines parenthèses (pour la lisibilité) si vous utilisez 'Non ou pas ' au lieu de 'Not ( et )', par [la loi De Morgan] (http://en.wikipedia.org/wiki/De_Morgan's_laws). – Zhihao

Répondre

1

Si cela est VB.NET alors l'opérateur ET est AndAlso

AndAlso et son frère OrElse sont meilleurs car:

  • Évite d'exécuter une partie d'une expression logique pour éviter les problèmes.
  • Optimisation du code de ne pas exécuter plus d'une expression composée que nécessaire

Ainsi, votre code doit être

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

    .... 
End If 
+0

C'est AndAlso (court-circuité et). OrElse est court-circuité Ou –

+0

Wow @Trekstuff vous êtes rapide, déjà corrigé l'accident – Steve

+0

suppose que je répondais en même temps et voulait éviter la confusion –

1

Au lieu de & & utilisation AndAlso