Evaluar y enviar comentarios
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Referencia del lenguaje Visual Basic
IIf (Función)

Devuelve uno de dos objetos, dependiendo de la evaluación de una expresión.

Public Function IIf( _
   ByVal Expression As Boolean, _ 
   ByVal TruePart As Object, _ 
   ByVal FalsePart As Object _ 
) As Object

Parámetros

Expression

Requerido. Boolean. Expresión que se desea evaluar.

TruePart

Requerido. Object. Se devuelve si Expression se evalúa como True.

FalsePart

Requerido. Object. Se devuelve si Expression se evalúa como False.

La función IIf proporciona un homólogo para el Conditional Operator: ? : ternario en Visual C++.

En este ejemplo se utiliza la función IIf para evaluar el parámetro testMe del procedimiento checkIt y devuelve la palabra "Large" si la cantidad es mayor que 1000; de lo contrario, devuelve la palabra "Small".

Visual Basic
Function checkIt(ByVal testMe As Integer) As String
    Return CStr(IIf(testMe > 1000, "Large", "Small"))
End Function

Tenga en cuenta que si Option Strict tiene el valor On, debe utilizar la palabra clave CStr para convertir explícitamente el resultado de Object en String.

Espacio de nombres: Microsoft.VisualBasic

Módulo: Interaction

Ensamblado: Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)

Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Evaluación de sentencias usando IIF      BoHeMlo   |   Editar   |   Mostrar historial
El IIF evalúa el código a ejecutar (tanto si la condición es verdadera o falsa) antes de ejecutarlo (esto no se si es fallo de MS o es intencional). El problema que podemos encontrar con esto es que hay que asegurarse que las sentencias a ejecutar sean válidas en todas las condiciones, si no tendremos un excepción.

Por ejemplo:
sString = IIf(valorDesdeBBDD is System.DBNull.Value, "No value", CType(valorDesdeBBDD, double).ToString)

Esto, en el caso de que valorDesdeBBDD sea DBNull, nos generará una excepción de que no se puede hacer un CType desde DBNull a Double, aunque la sentencia nunca se ejecutará.

En este caso lo mejor es hacer un a función genérica para evaluar el dato, como explica un compañero en otra contribución.

Uso de Genéricos para IIF      Luis Belloch   |   Editar   |   Mostrar historial

La misma función se puede escribir con genéricos para evitar el cast desde y hacia object

Public Function IIF(Of T)(ByVal expression As Boolean, ByVal truePart As T, ByVal falsePart As T) As T
If expression Then Return truePart
Return falsePart
End Function
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker