Existe-t-il un opérateur ternaire conditionnel dans VB.NET?

En Perl (et autres langages), un opérateur ternaire conditionnel peut être exprimé comme ceci:

my $foo = $bar == $buz ? $cat : $dog; 

Existe-t-il un opérateur similaire dans VB.NET?

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 nul). Cela vient d’être présenté, avant 2008, ce n’était pas disponible. Voici quelques informations supplémentaires: Visual Basic If l’annonce

Exemple:

 Dim foo as Ssortingng = If(bar = buz, cat, dog) 

iif a toujours été disponible en VB, même en VB6.

 Dim foo as Ssortingng = iif(bar = buz, cat, dog) 

Ce n’est pas un vrai opérateur, en tant que tel, mais une fonction dans l’espace de noms Microsoft.VisualBasic.

Si () est l’équivalent le plus proche mais méfiezvous des conversions implicites si vous avez défini “Option Ssortingct 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 compilation