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

Условно компилирует выбранные блоки кода Visual Basic.

Синтаксис

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

Детали

expression
Требуется для #If инструкций и #ElseIf инструкций, необязательных в других местах. Любое выражение, состоящее исключительно из одной или нескольких констант условного компилятора, литералов и операторов, которая оценивает True или False.

statements
Требуется для #If блока инструкций, необязательного в другом месте. Строки программы Visual Basic или директивы компилятора, скомпилированные, если связанное выражение оценивается True.

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

Замечания

На поверхности поведение #If...Then...#Else директив появляется так же, как If...Then...Else и в инструкциях. Однако директивы оценивают то, #If...Then...#Else что компилируется компилятором, а If...Then...Else операторы оценивают условия во время выполнения.

Условная компиляция обычно используется для компиляции одной программы для разных платформ. Он также используется для предотвращения отображения кода отладки в исполняемом файле. Код, исключенный во время условной компиляции, полностью опущен из окончательного исполняемого файла, поэтому он не влияет на размер или производительность.

Независимо от результата любой оценки, все выражения оцениваются с помощью Option Compare Binary. Оператор Option Compare не влияет на выражения и #If#ElseIf операторы.

Примечание.

Ни одна строка формы #If, #Else#ElseIfи #End If директивы не существуют. Ни один другой код не может отображаться в той же строке, что и любая из директив.

Инструкции в блоке условной компиляции должны быть завершены логическими операторами. Например, нельзя условно скомпилировать только атрибуты функции, но можно условно объявить функцию вместе с его атрибутами:

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

Пример

В этом примере используется #If...Then...#Else конструкция, чтобы определить, следует ли компилировать определенные инструкции.

#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

См. также