Freigeben über


#If... Dann...#Else Richtlinien

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

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, optional an anderer Stelle. Jeder Ausdruck, der ausschließlich aus einer oder mehreren bedingten Compilerkonstanten, Literalen und Operatoren besteht, die ausgewertet True werden oder False.

statements
Erforderlich für #If den Anweisungsblock, optional an anderer Stelle. Visual Basic-Programmzeilen oder Compilerdirektiven, die kompiliert werden, wenn der zugeordnete Ausdruck ausgewertet wird True.

#End If
Beendet den #If Anweisungsblock.

Bemerkungen

Auf der Oberfläche erscheint das Verhalten der #If...Then...#Else Direktiven mit dem der If...Then...Else Anweisungen identisch. Die Direktiven bewerten jedoch, #If...Then...#Else was vom Compiler kompiliert wird, während die If...Then...Else Anweisungen Bedingungen zur Laufzeit auswerten.

Die bedingte Kompilierung wird in der Regel verwendet, um dasselbe Programm für verschiedene Plattformen zu kompilieren. Es 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 vollständig von der endgültigen ausführbaren Datei weggelassen, sodass er keine Auswirkungen auf die Größe oder Leistung hat.

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 #IfDirektiven , #Else, #ElseIfund #End If es gibt keine einzeilige Form. Kein anderer Code kann in derselben Zeile wie jede der Direktiven angezeigt werden.

Die Anweisungen innerhalb eines bedingten Kompilierungsblocks müssen vollständige logische Anweisungen sein. Sie können beispielsweise nicht nur die Attribute einer Funktion bedingt kompilieren, aber Sie können die Funktion zusammen mit den zugehörigen 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