#If...Then...#Else-Anweisung

Kompiliert bedingt ausgewählte Blöcke von Visual Basic-Code.

Syntax

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

Bestandteile

expression
Erforderlich für #If- und #ElseIf-Anweisungen, andernfalls optional. Jeder Ausdruck, der ausschließlich aus einer oder mehreren bedingten Compilerkonstanten, Literalen und Operatoren besteht, der als True oder Falseausgewertet wird.

statements
Erforderlich für einen #If-Anweisungsblock, andernfalls optional. Visual Basic-Programmzeilen oder Compilerdirektiven, die kompiliert werden, wenn der zugeordnete Ausdruck als True ausgewertet wird.

#End If
Beendet den #If-Anweisungsblock.

Bemerkungen

Oberflächlich erscheint das Verhalten der #If...Then...#Else-Anweisungen identisch mit dem Verhalten der If...Then...Else-Anweisungen. Die #If...Then...#Else-Anweisungen werten jedoch das aus, was vom Compiler kompiliert wird, während die If...Then...Else-Anweisungen die Bedingungen zur Laufzeit auswerten.

Die bedingte Kompilierung wird in der Regel verwendet, um dasselbe Programm für verschiedene Plattformen zu kompilieren. Sie wird auch verwendet, um zu verhindern, dass Debugcode in einer ausführbaren Datei angezeigt wird. Code, der während der bedingten Kompilierung ausgeschlossen wird, wird in der endgültigen ausführbaren Datei vollständig weggelassen, sodass er sich nicht auf Größe oder Leistung auswirkt.

Unabhängig vom Ergebnis einer Auswertung werden alle Ausdrücke mit Option Compare Binaryausgewertet. Die Option Compare-Anweisung wirkt sich nicht auf Ausdrücke in #If- und #ElseIf-Anweisungen aus.

Hinweis

Es gibt keine einzeilige Form der Direktiven #If, #Else, #ElseIf und #End If. Kein anderer Code kann in derselben Zeile wie eine der Anweisungen angezeigt werden.

Die Anweisungen innerhalb eines bedingten Kompilierungsblocks müssen vollständige logische Anweisungen sein. Sie können beispielsweise nicht bedingt nur die Attribute einer Funktion kompilieren, aber sie können die Funktion zusammen mit ihren Attributen bedingt deklarieren:

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

Beispiel

In diesem Beispiel wird das #If...Then...#Else-Konstrukt verwendet, um zu bestimmen, ob bestimmte Anweisungen kompiliert werden sollen.

#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

Siehe auch