Директивы #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