Opérateurs logiques AndAlso et OrElse de VB.NET

Cette astuce rapide vous montre ce qu'ils peuvent faire

développeur de logiciels et script informatique

Juhari Muhade / Getty Images





VB.NET dispose de deux opérateurs logiques qui aident à rendre votre programmation... eh bien... plus logique. Les nouveaux opérateurs sont Et aussi et Ou sinon et ils ajoutent beaucoup aux anciens opérateurs Et et Ou.

Quoi de neuf

AndAlso et OrElse ont des propriétés qui améliorent votre code d'une manière que les versions VB précédentes ne pouvaient pas égaler. Ils offrent des avantages dans deux catégories générales :



  • Vous pouvez éviter d'exécuter une partie d'une expression logique pour éviter les problèmes.
  • Vous pouvez optimiser le code en n'exécutant pas plus d'une expression composée que nécessaire.

AndAlso et OrElse sont à peu près comme And et Or sauf qu'ils 'court-circuiteront' une expression une fois que le résultat est garanti.

Exemple

Supposons que vous codiez un test d'un résultat de calcul comme celui-ci :



L'expression if génère une erreur 'diviser par zéro' dans VB 6 car Value3 est zéro. (Mais voyez le Astuce rapide sur la division par zéro pour en savoir plus.) Il se peut que les cas qui aboutissent à la valeur zéro de Value3 soient très rares et ne se produisent que lorsque vous profitez de vacances à des milliers de kilomètres, vous pouvez donc être rappelé pour réparer le programme en mode d'urgence. (Hé ! Ça arrive !)

Recodons le programme en tant que programme .NET en utilisant AndAlso et voyons ce qui se passe.

Après avoir changé And en AndAlso, le programme fonctionne ! La raison en est que la dernière partie de la condition If composée (valeur 2 valeur3) n'est jamais réellement exécutée. Lorsque vous utilisez AndAlso, VB.NET sait que l'expression ne peut pas réussir une fois qu'il est déterminé que la première partie de la condition (a n'est pas supérieur à Value1) est fausse. Donc VB.NET arrête d'évaluer l'expression juste là. Un exemple similaire pourrait être construit en utilisant OrElse.

Cette analyse suggère également comment ajouter de l'efficacité à votre code en organisant correctement une expression logique composée. Si vous placez l'expression la plus susceptible d'être fausse dans la position la plus à gauche lors de l'utilisation de AndAlso, vous pouvez empêcher l'utilisation des cycles d'exécution pour évaluer l'expression la plus à droite. Dans un seul test, cela ne ferait pas assez de différence pour mériter même d'y penser. Mais si votre test se trouve dans une boucle quelconque et est exécuté des millions de fois, cela pourrait faire une grande différence.



Connaître ces deux nouveaux opérateurs logiques VB .NET peut vous aider à éviter des erreurs très subtiles ou à réaliser des gains d'efficacité subtils.