En Perl (et d'autres langues), un opérateur ternaire conditionnel peut être exprimé comme suit:
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
de VB.NET 2008 est un opérateur ternaire (ainsi qu'un opérateur de coalescence nul). Cela vient d'être introduit, avant 2008, ce n'était pas disponible. Voici quelques informations supplémentaires: Visual Basic si annonce
Exemple:
Dim foo as String = If(bar = buz, cat, dog)
[MODIFIER]
Avant 2008, c'était "IIf", qui fonctionnait presque de la même manière que l'opérateur If décrit ci-dessus.
Exemple:
Dim foo as String = IIf(bar = buz, cat, dog)
iif a toujours été disponible en VB, même en 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 de l'espace de noms Microsoft.VisualBasic.
Si () est l'équivalent le plus proche, mais attention 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 plutôt à la compilation