#If...Then...#Else (Directivas)
Compila condicionalmente los bloques seleccionados Visual Basic código.
Sintaxis
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
Partes
expression
Obligatorio para #If las instrucciones y , opcional en otro #ElseIf lugar. Cualquier expresión, que consta exclusivamente de una o varias constantes condicionales del compilador, literales y operadores, que se evalúa como True o False .
statements
Obligatorio para el #If bloque de instrucciones, opcional en otro lugar. Visual Basic líneas de programa o directivas del compilador que se compilan si la expresión asociada se evalúa como True .
#End If
Finaliza el bloque #If de instrucciones.
Comentarios
En la superficie, el comportamiento de #If...Then...#Else las directivas aparece igual que el de las instrucciones If...Then...Else . Sin embargo, las directivas evalúan lo que compila el compilador, mientras que las #If...Then...#Else If...Then...Else instrucciones evalúan las condiciones en tiempo de ejecución.
La compilación condicional se usa normalmente para compilar el mismo programa para distintas plataformas. 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 o el rendimiento.
Independientemente del resultado de cualquier evaluación, todas las expresiones se evalúan mediante Option Compare Binary . La Option Compare instrucción no afecta a las expresiones de las instrucciones y #If #ElseIf .
Nota
No existe ninguna forma de línea única de las directivas #If #Else , , y #ElseIf #End If . Ningún otro código puede aparecer en la misma línea que ninguna 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 #If...Then...#Else la construcción para determinar si se deben 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