#If...Then...#Else (Directivas)

Compila de manera condicional bloques seleccionados de código de Visual Basic.

Sintaxis

#If expression Then
   statements
[ #ElseIf expression Then
   [ statements ]
...
#ElseIf expression Then
   [ statements ] ]
[ #Else
   [ statements ] ]
#End If

Partes

expression
Obligatoria para las instrucciones #If y #ElseIf, opcional en cualquier otro lugar. Cualquier expresión, que consta exclusivamente de una o varias constantes del compilador condicional, literales y operadores, que se evalúa como True o False.

statements
Obligatoria para el bloque de instrucciones #If, opcional en cualquier otro lugar. Directivas del compilador o líneas de programa de Visual Basic que se compilan si la expresión asociada se evalúa como True.

#End If
Finaliza el bloque de instrucciones #If.

Comentarios

En la superficie, el comportamiento de las directivas #If...Then...#Else parece ser igual que el de las instrucciones If...Then...Else. Sin embargo, las directivas #If...Then...#Else evalúan qué compila el compilador, mientras que las instrucciones If...Then...Else evalúan las condiciones en tiempo de ejecución.

Por lo general, la compilación condicional se usa para compilar el mismo programa para plataformas distintas. También se usa para evitar que el código de depuración aparezca en un archivo ejecutable. El código excluido durante la compilación condicional se omite completamente del archivo ejecutable final, por lo que no tiene ningún efecto en el tamaño ni en el rendimiento.

Independientemente del resultado de cualquier evaluación, todas las expresiones se evalúan mediante Option Compare Binary. La instrucción Option Compare no afecta las expresiones en las instrucciones #If y #ElseIf.

Nota

No existe ninguna forma de línea única de las directivas #If, #Else, #ElseIf y #End If. Ningún otro código puede aparecer en la misma línea que cualquiera de las directivas.

Las instrucciones dentro de un bloque de compilación condicional deben ser instrucciones lógicas completas. Por ejemplo, no puede compilar condicionalmente solo los atributos de una función, pero puede declarar condicionalmente la función junto con sus atributos:

#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If

Ejemplo

En este ejemplo, se usa la construcción #If...Then...#Else para determinar si se van a compilar determinadas instrucciones.

#Const CustomerNumber = 36
#If CustomerNumber = 35 Then
        ' Insert code to be compiled for customer # 35.
#ElseIf CustomerNumber = 36 Then
        ' Insert code to be compiled for customer # 36.
#Else
        ' Insert code to be compiled for all other customers.
#End If

Consulte también