Директивы #If...Then...#Else#If...Then...#Else Directives

Условно компилирует выбранные блоки кода Visual Basic.Conditionally compiles selected blocks of Visual Basic code.

СинтаксисSyntax

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

ЧастиParts

expression
Требуется для #If и #ElseIf операторов в другом месте.Required for #If and #ElseIf statements, optional elsewhere. Любое выражение, состоящее исключительно из константы условной компиляции, литералы и операторов, результатом которого является True или False.Any expression, consisting exclusively of one or more conditional compiler constants, literals, and operators, that evaluates to True or False.

statements
Требуется для #If инструкции блока, необязательно в другом месте.Required for #If statement block, optional elsewhere. Строки кода Visual Basic или директивы компилятора компилируются, если значение выражения, результатом которого является True.Visual Basic program lines or compiler directives that are compiled if the associated expression evaluates to True.

#End If
Завершает #If блока инструкций.Terminates the #If statement block.

ПримечанияRemarks

В рабочей области, поведение #If...Then...#Else директивы отображается одинаково как для If...Then...Else инструкций.On the surface, the behavior of the #If...Then...#Else directives appears the same as that of the If...Then...Else statements. Тем не менее #If...Then...#Else директивы оперируют компилятором, тогда как If...Then...Else операторов результат вычисления условия во время выполнения.However, the #If...Then...#Else directives evaluate what is compiled by the compiler, whereas the If...Then...Else statements evaluate conditions at run time.

Условная компиляция обычно используется для компиляции того же кода для разных платформ.Conditional compilation is typically used to compile the same program for different platforms. Оно также используется для предотвращения появления в исполняемом файле отладочного кода.It is also used to prevent debugging code from appearing in an executable file. Код, исключаемый при условной компиляции полностью исключается из окончательный исполняемый файл, поэтому не влияет на производительность или размер.Code excluded during conditional compilation is completely omitted from the final executable file, so it has no effect on size or performance.

Независимо от результата любого вычисления, все выражения вычисляются с помощью Option Compare Binary.Regardless of the outcome of any evaluation, all expressions are evaluated using Option Compare Binary. Option Compare Инструкции не влияет на выражения в #If и #ElseIf инструкции.The Option Compare statement does not affect expressions in #If and #ElseIf statements.

Примечание

Ни в какой форме однострочный #If, #Else, #ElseIf, и #End If существует директивы.No single-line form of the #If, #Else, #ElseIf, and #End If directives exists. Никакой другой код могут отображаться на одной строке с любой из директивы.No other code can appear on the same line as any of the directives.

Операторы в блоке условной компиляции должен быть полный логических операторов.The statements within a conditional compilation block must be complete logical statements. Например нельзя условной компиляции только атрибуты функции, но можно условно Объявите функцию и ее атрибуты: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

ПримерExample

В этом примере используется #If...Then...#Else для определения, следует ли компилировать определенных операторов.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

См. такжеSee Also

Директива #Const#Const Directive
Оператор If...Then...ElseIf...Then...Else Statement
Условная компиляция Conditional Compilation
System.Diagnostics.ConditionalAttribute