270 votos

¿Existe un operador ternario condicional en VB.NET?

En Perl (y otros lenguajes) un operador ternario condicional puede expresarse así:

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

¿Existe un operador similar en VB.NET?

340voto

Jess Puntos 8425

Depende. El operador If en VB.NET 2008 actúa como un operador ternario. Esto se acaba de introducir, antes de 2008 no estaba disponible. Aquí hay más información: Anuncio de Visual Basic If

Ejemplo:

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

48voto

Kris Erickson Puntos 16204

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.

10voto

unnknown Puntos 284

If() es el equivalente más cercano pero cuidado con de las conversiones implícitas que se realizan si se ha configurado la "Opción Estricta".

Por ejemplo, si no tienes cuidado, puedes tener la tentación de intentar algo así:

Dim foo As Integer? = If( someTrueExpression, Nothing, 2)

¡Dará a "foo" un valor de 0!

Creo que el operador '?' equivalente en C# fallaría en la compilación

-2voto

King of kings Puntos 697

Usa esta línea,

foo=IIf(bar=buz,cat,dog)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X