Y a-t-il un opérateur ternaire conditionnel dans VB.NET?
En Perl (et dans d'autres langages), un opérateur ternaire conditionnel peut être exprimé comme ceci:
my $foo = $bar == $buz ? $cat : $dog;
Y a-t-il un opérateur similaire dans VB.NET?
3 réponses
Dépend de la version. L'opérateur If
dans VB.NET 2008 est un opérateur ternaire (ainsi qu'un opérateur de coalescence null). Cela vient d'être introduit, avant 2008 cela n'était pas disponible. Voici quelques informations supplémentaires: Visual Basic if announcement
Exemple:
Dim foo as String = If(bar = buz, cat, dog)
Iif a toujours été disponible dans VB, même dans VB6.
Dim foo as String = iif(bar = buz, cat, dog)
Ce n'est pas un véritable opérateur, en tant que tel, mais une fonction dans Microsoft.Espace de noms VisualBasic.
If () est l'équivalent le plus proche mais méfiez-vous des conversions implicites en cours Si vous avez défini "Option Strict off"
Par exemple, si vous ne faites pas attention, vous pourriez être tenté d'essayer quelque chose comme:
Dim foo As Integer? = If( someTrueExpression, Nothing, 2)
Donnera à " foo " une valeur de 0!
Je pense que le '?'l'opérateur équivalent en C # échouerait à la place de la compilation