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

Compila condicionalmente os blocos selecionados de código de Visual Basic.Conditionally compiles selected blocks of Visual Basic code.

SyntaxSyntax

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

PartesParts

expression
Necessário para #If #ElseIf instruções and, opcional em outro lugar.Required for #If and #ElseIf statements, optional elsewhere. Qualquer expressão, consistindo exclusivamente em uma ou mais constantes de compilador condicionais, literais e operadores, que é avaliada como True ou False .Any expression, consisting exclusively of one or more conditional compiler constants, literals, and operators, that evaluates to True or False.

statements
Necessário para #If bloco de instrução, opcional em outro lugar.Required for #If statement block, optional elsewhere. Visual Basic linhas de programa ou diretivas de compilador que são compiladas se a expressão associada for avaliada como True .Visual Basic program lines or compiler directives that are compiled if the associated expression evaluates to True.

#End If
Encerra o #If bloco de instruções.Terminates the #If statement block.

ComentáriosRemarks

Na superfície, o comportamento das #If...Then...#Else diretivas é exibido da mesma forma que as If...Then...Else instruções.On the surface, the behavior of the #If...Then...#Else directives appears the same as that of the If...Then...Else statements. No entanto, as #If...Then...#Else diretivas avaliam o que é compilado pelo compilador, enquanto as If...Then...Else instruções avaliam condições em tempo de execução.However, the #If...Then...#Else directives evaluate what is compiled by the compiler, whereas the If...Then...Else statements evaluate conditions at run time.

A compilação condicional é normalmente usada para compilar o mesmo programa para diferentes plataformas.Conditional compilation is typically used to compile the same program for different platforms. Ele também é usado para impedir que o código de depuração apareça em um arquivo executável.It is also used to prevent debugging code from appearing in an executable file. 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.Code excluded during conditional compilation is completely omitted from the final executable file, so it has no effect on size or performance.

Independentemente do resultado de qualquer avaliação, todas as expressões são avaliadas usando Option Compare Binary .Regardless of the outcome of any evaluation, all expressions are evaluated using Option Compare Binary. A Option Compare instrução não afeta as expressões nas #If #ElseIf instruções e.The Option Compare statement does not affect expressions in #If and #ElseIf statements.

Observação

Não existe uma forma de linha única #If das #Else diretivas,, #ElseIf e #End If .No single-line form of the #If, #Else, #ElseIf, and #End If directives exists. Nenhum outro código pode aparecer na mesma linha que qualquer uma das diretivas.No other code can appear on the same line as any of the directives.

As instruções em um bloco de compilação condicional devem ser instruções lógicas completas.The statements within a conditional compilation block must be complete logical statements. 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:For example, you cannot conditionally compile only the attributes of a function, but you can conditionally declare the function along with its attributes:

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

ExemploExample

Este exemplo usa a #If...Then...#Else construção para determinar se deve compilar determinadas instruções.This example uses the #If...Then...#Else construct to determine whether to compile certain statements.

#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 tambémSee also