Compartilhar via


Diretivas #If...Then...#Else

Compila condicionalmente blocos selecionados do código do Visual Basic.

Sintaxe

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

Partes

expression
Necessário para as instruções #If e #ElseIf, opcional em outros lugares. Qualquer expressão que consista exclusivamente em uma ou mais constantes condicionais do compilador, literais e operadores, que sejam avaliadas como True ou False.

statements
Necessário para o bloco de instruções #If, opcional em outros lugares. Linhas de programa ou diretivas do compilador do Visual Basic que são compiladas se a expressão associada for avaliada como True.

#End If
Encerra o bloco de instruções #If.

Comentários

Na superfície, o comportamento das diretivas #If...Then...#Else aparece o mesmo que o das instruções If...Then...Else. No entanto, as diretivas #If...Then...#Else avaliam o que é compilado pelo compilador, enquanto as instruções If...Then...Else avaliam as condições em tempo de execução.

A compilação condicional normalmente é usada para compilar o mesmo programa para diferentes plataformas. Ela também é usada 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, ele 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 instrução Option Compare não afeta expressões nas instruções #If e #ElseIf.

Observação

Não existe nenhuma forma de linha única das diretivas #If, #Else, #ElseIf e #End If. Nenhum outro código pode aparecer 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 o constructo #If...Then...#Else para determinar se é necessário compilar determinadas instruções.

#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

Confira também