\0_ Opérateur ternaire en Visual Basic
mercredi 20 août 2008
Depuis le framework 3.5, Visual Basic dispose (enfin) d'un vrai opérateur ternaire ! \0/Pour rappel, jusqu'à présent, ce qu'on avait de plus approchant était la méthode Iif provenant de
Dim pouet as string Dim pinpon as string pinpon = Iif(pouet IsNot Nothing, pouet.Trim(), String.Empty)Je vais avoir droit à une belle NullReferenceException dans la figure : l'appel à pouet.Trim() étant évalué lors de l'appel à Iif, comme pouet n'est pas initialisé, l'exception est levée.
Aujourd'hui, tout cela est terminé, et on écrira le code précédent de la façon suivante :
Dim pouet as string Dim pinpon as string pinpon = If(pouet IsNot Nothing, pouet.Trim(), String.Empty)La syntaxe est donc exactement la même, si ce n'est qu'on utilise if à la place iif et qu'on ne provoque pas d'exception :-)
Au passage, notez que si l'opérateur est utilisé avec seulement deux arguments, il agit comme le ?? du C#, autrement dit : "si le premier paramètre est à null, retourner le second paramètre, sinon retourner le premier. Exemple :
Dim pouet as string Dim pinpon as string pinpon = If(pouet, String.Empty)
Happy (safe) coding _0/
Réactions :
mercredi 20 août 2008 - 14:58
Là par exemple, sur ma mission actuelle, je développe sur un projet qui a trois ans, et qui a dès le début été écrit en... vb.net.
Ma mission précédente était en vb.net aussi.
Il ne faut pas sous-estimer le fait que les développeurs vb6 sont nettement plus faciles à former à vb.net qu'à C#, ce qui fait que le langage est toujours très populaire.
nop
(http://www.peuw.net)
mercredi 27 août 2008 - 22:27
Il ne faut pas sous-estimer le fait que les développeurs vb6 sont nettement plus faciles à former à vb.net qu'à C#, ce qui fait que le langage est toujours très populaire
argl !
Belegar
jeudi 28 août 2008 - 10:28
Entre les formations foireuses et ceux qui ne veulent pas faire d'efforts, le code résultant est souvent un mélange improbable de fonctions vb6 portées en .NET et de .NET pur, donnant l'impression à celui qui maintient ce code d'être un médecin militaire : chaque jour amène son lot d'atrocités, mais on serre les dents, on panse les plaies, et on espère qu'un jour l'horreur cessera et que tout le monde codera correctement.
Mais là je m'égare un peu.
nop
(http://www.peuw.net)
lundi 16 février 2009 - 22:39
RICO
(http://www.progx.org)
mardi 30 juin 2009 - 16:11
Option Explicit On
Option Strict On
Option Infer On
Sinon, ce n'est même pas la peine... ;)
Un csharpiste amené à bosser aussi en vb
Laurent
mardi 30 juin 2009 - 18:00
Et bon courage pour le vb, alors :)
nop
(http://www.peuw.net)




mercredi 20 août 2008 - 13:58
Depuis l'avènement de .Net il me semble que la plus part des gens passent par du C#. Après pour la maintenance de codes VB existants effectivement ....