variable net loop functions collection array vb.net operators conditional-operator short-circuiting

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.