#If...Then...#Else-Direktive#If...Then...#Else directive

Kompiliert ausgewählte Blöcke mit Visual Basic-Code bedingt.Conditionally compiles selected blocks of Visual Basic code.

SyntaxSyntax

#If expression Then#If expression Then
statementsstatements
[ #ElseIf expression-n Then[ #ElseIf expression-n Then
[ elseifstatements ]][ elseifstatements ]]
[ #Else[ #Else
[ elsestatements ]][ elsestatements ]]
#End If#End If


Die Syntax der #If...Then...#Else-Direktive enthält die folgenden Bestandteile:The #If...Then...#Else directive syntax has these parts:

TeilPart BeschreibungDescription
expressionexpression Erforderlich.Required. Alle Ausdrücke, die ausschließlich aus einer oder mehreren bedingten Compilerkonstanten, Literalen und Operatoren bestehen, die in True oder False ausgewertet werden.Any expression, consisting exclusively of one or more conditional compiler constants, literals, and operators, that evaluates to True or False.
statementsstatements Erforderlich.Required. Visual Basic-Programmzeilen oder Compilerdirektiven, die ausgewertet werden, wenn der zugehörige Ausdruck True ist.Visual Basic program lines or compiler directives that are evaluated if the associated expression is True.
expression-nexpression-n Optional.Optional. Alle Ausdrücke, die ausschließlich aus einer oder mehreren bedingten Compilerkonstanten, Literalen und Operatoren bestehen, die in True oder False ausgewertet werden.Any expression, consisting exclusively of one or more conditional compiler constants, literals, and operators, that evaluates to True or False.
elseifstatementselseifstatements Optional.Optional. Visual Basic-Programmzeilen oder Compilerdirektiven, die ausgewertet werden, wenn expression-n True ist.One or more program lines or compiler directives that are evaluated if expression-n is True.
elsestatementselsestatements Optional.Optional. Visual Basic-Programmzeilen oder Compilerdirektiven, die ausgewertet werden, wenn kein vorheriger expression oder expression-n True ist.One or more program lines or compiler directives that are evaluated if no previous expression or expression-n is True.

HinweiseRemarks

Das Verhalten der #If...Then...#Else-Direktive ist identisch mit der If...Then...Else-Anweisung, mit der Ausnahme, dass es kein einzeiliges Formular der #If-, #Else-, #ElseIf- und #End If-Direktiven gibt, das heißt, es kann kein anderer Code in derselben Zeile wie eine der Direktiven angezeigt werden.The behavior of the #If...Then...#Else directive is the same as the If...Then...Else statement, except that there is no single-line form of the #If, #Else, #ElseIf, and #End If directives; that is, no other code can appear on the same line as any of the directives.

Die bedingte Kompilierung wird in der Regel verwendet, um dasselbe Programm für unterschiedliche Plattformen zu kompilieren.Conditional compilation is typically used to compile the same program for different platforms. Es wird auch verwendet, um zu verhindern, dass das Debuggen von Code in einer ausführbaren Datei angezeigt wird.It is also used to prevent debugging code from appearing in an executable file. Code, der bei der bedingten Kompilierung ausgeschlossen wird, wird in der finalen ausführbaren Datei vollständig weggelassen und wirkt sich daher nicht auf die Größe oder Leistung aus.Code excluded during conditional compilation is completely omitted from the final executable file, so it has no size or performance effect.

Unabhängig vom Ergebnis der Auswertungen werden alle Ausdrücke ausgewertet.Regardless of the outcome of any evaluation, all expressions are evaluated. Daher müssen alle in Ausdrücken verwendeten Konstanten definiert werden – nicht definierte Konstanten werden als leer ausgewertet.Therefore, all constants used in expressions must be defined—any undefined constant evaluates as Empty.

Hinweis

Die Option Compare-Anweisung wirkt sich nicht auf Ausdrücke in #If- und #ElseIf-Anweisungen aus.The Option Compare statement does not affect expressions in #If and #ElseIf statements. Ausdrücke in einer Richtlinie für die bedingte Kompilierung werden immer als Option Compare Text ausgewertet.Expressions in a conditional-compiler directive are always evaluated with Option Compare Text.

BeispielExample

Dieses Beispiel verweist auf bedingte Compilerkonstanten in einem #If... Then... #Else-Konstrukt, um zu bestimmen, ob bestimmte Anweisungen kompiliert werden sollen.This example references conditional compiler constants in an #If...Then...#Else construct to determine whether to compile certain statements.

' If Mac evaluates as true, do the statements following the #If. 
#If Mac Then 
 '. Place exclusively Mac statements here. 
 '. 
 '. 
' Otherwise, if it is a 32-bit Windows program, do this: 
#ElseIf Win32 Then 
 '. Place exclusively 32-bit Windows statements here. 
 '. 
 '. 
' Otherwise, if it is neither, do this: 
#Else 
 '. Place other platform statements here. 
 '. 
 '. 
#End If

Siehe auchSee also