#If... Vervolgens...#Else richtlijnen
Hiermee worden geselecteerde blokken visual Basic-code voorwaardelijk gecompileerd.
Syntaxis
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
generator
expression
Vereist voor #If
en #ElseIf
instructies, optioneel elders. Elke expressie, die uitsluitend bestaat uit een of meer voorwaardelijke compilerconstanten, letterlijke elementen en operators, die worden geëvalueerd of True
False
.
statements
Vereist voor #If
instructieblok, optioneel elders. Visual Basic-programmalijnen of compilerrichtlijnen die worden gecompileerd als de bijbehorende expressie resulteert in True
.
#End If
Hiermee wordt het #If
instructieblok beëindigd.
Opmerkingen
Op het eerste gezicht lijkt het gedrag van de #If...Then...#Else
instructies hetzelfde als die van de If...Then...Else
instructies. De #If...Then...#Else
instructies evalueren echter wat door de compiler wordt gecompileerd, terwijl de If...Then...Else
instructies voorwaarden evalueren tijdens runtime.
Voorwaardelijke compilatie wordt doorgaans gebruikt om hetzelfde programma voor verschillende platforms te compileren. Het wordt ook gebruikt om te voorkomen dat foutopsporingscode wordt weergegeven in een uitvoerbaar bestand. Code die tijdens voorwaardelijke compilatie wordt uitgesloten, wordt volledig weggelaten uit het uiteindelijke uitvoerbare bestand, dus dit heeft geen invloed op de grootte of prestaties.
Ongeacht het resultaat van een evaluatie worden alle expressies geëvalueerd met behulp van Option Compare Binary
. De Option Compare
instructie heeft geen invloed op expressies in #If
en #ElseIf
instructies.
Notitie
Er bestaat geen enkele regelvorm van de#If
, #Else
en #ElseIf
#End If
richtlijnen. Er kan geen andere code worden weergegeven op dezelfde regel als een van de instructies.
De instructies in een blok voor voorwaardelijke compilatie moeten volledige logische instructies zijn. U kunt bijvoorbeeld niet alleen de kenmerken van een functie voorwaardelijk compileren, maar u kunt de functie voorwaardelijk declareren samen met de bijbehorende kenmerken:
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
Opmerking
In dit voorbeeld wordt de #If...Then...#Else
constructie gebruikt om te bepalen of bepaalde instructies moeten worden gecompileerd.
#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