#If... Depois...#Else Diretivas
Condicionalmente compila blocos selecionados de código do Visual Basic.
Sintaxe
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
Partes
expression
Obrigatório para #If
e #ElseIf
declarações, opcional em outro lugar. Qualquer expressão, consistindo exclusivamente de uma ou mais constantes condicionais do compilador, literais e operadores, que avalia a True
ou False
.
statements
Obrigatório para #If
o bloco de instruções, opcional em outro lugar. Linhas de programa do Visual Basic ou diretivas de compilador que são compiladas se a expressão associada for avaliada como True
.
#End If
Encerra o #If
bloco de instrução.
Observações
À primeira vista, o #If...Then...#Else
comportamento das diretivas parece o mesmo que o If...Then...Else
das declarações. No entanto, as diretivas avaliam #If...Then...#Else
o que é compilado pelo compilador, enquanto as instruções avaliam as If...Then...Else
condições em tempo de execução.
A compilação condicional é normalmente usada para compilar o mesmo programa para diferentes plataformas. Ele também é usado para impedir que o código de depuração apareça em um arquivo executável. O código excluído durante a compilação condicional é completamente omitido do arquivo executável final, portanto, não tem efeito sobre o tamanho ou o desempenho.
Independentemente do resultado de qualquer avaliação, todas as expressões são avaliadas usando Option Compare Binary
. A Option Compare
instrução não afeta expressões em #If
e #ElseIf
declarações.
Nota
Não existe uma forma única de , #If
#Else
, #ElseIf
, e #End If
diretivas. Nenhum outro código pode figurar na mesma linha que qualquer uma das diretivas.
As instruções dentro de um bloco de compilação condicional devem ser instruções lógicas completas. Por exemplo, você não pode compilar condicionalmente apenas os atributos de uma função, mas pode declarar condicionalmente a função junto com seus atributos:
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
Exemplo
Este exemplo usa a #If...Then...#Else
construção para determinar se determinadas instruções devem ser compiladas.
#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