loop - ¿Hay un operador ternario condicional en VB.NET?
vb net loops (3)
Depende de la versión. El operador If
en VB.NET 2008 es un operador ternario (así como un operador de coalescencia nulo). Esto se acaba de presentar, antes de 2008 no estaba disponible. Aquí hay algo más de información: Visual Basic Si anuncio
Ejemplo:
Dim foo as String = If(bar = buz, cat, dog)
En Perl (y otros idiomas) un operador ternario condicional se puede expresar así:
my $foo = $bar == $buz ? $cat : $dog;
¿Hay un operador similar en VB.NET?
Si () es el equivalente más cercano, pero tenga cuidado con las conversiones implícitas que se están produciendo si ha desactivado "Option Strict off"
Por ejemplo, si no tiene cuidado puede sentirse tentado a probar algo como:
Dim foo As Integer? = If( someTrueExpression, Nothing, 2)
Le dará a "foo" un valor de 0!
Creo que el ''?'' operador equivalente en C # en su lugar fallaría compilación
iif siempre ha estado disponible en VB, incluso en VB6.
Dim foo as String = iif(bar = buz, cat, dog)
No es un verdadero operador, como tal, sino una función en el espacio de nombres Microsoft.VisualBasic.