#If... Sedan...#Else direktiv
Villkorligt kompilerar valda block med Visual Basic-kod.
Syntax
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
Delar
expression
Krävs för #If
och #ElseIf
-instruktioner, valfria någon annanstans. Alla uttryck, som uteslutande består av en eller flera konstanter för villkorlig kompilator, literaler och operatorer, som utvärderas till True
eller False
.
statements
Krävs för #If
instruktionsblock, valfritt någon annanstans. Visual Basic-programrader eller kompileringsdirektiv som kompileras om det associerade uttrycket utvärderas till True
.
#End If
Avslutar instruktionsblocket #If
.
Kommentarer
På ytan visas beteendet för #If...Then...#Else
direktiven på samma sätt som i If...Then...Else
-instruktionerna. Direktiven #If...Then...#Else
utvärderar dock vad som kompileras av kompilatorn, medan uttrycken If...Then...Else
utvärderar villkor vid körning.
Villkorsstyrd kompilering används vanligtvis för att kompilera samma program för olika plattformar. Det används också för att förhindra att felsökning av kod visas i en körbar fil. Kod som undantas under villkorlig kompilering utelämnas helt från den slutliga körbara filen, så den påverkar inte storlek eller prestanda.
Oavsett resultatet av en utvärdering utvärderas alla uttryck med hjälp av Option Compare Binary
. -instruktionen Option Compare
påverkar inte uttryck i #If
och #ElseIf
-uttryck.
Kommentar
Det finns ingen enkelradsform av direktiven #If
, #Else
, #ElseIf
och #End If
. Ingen annan kod kan visas på samma rad som något av direktiven.
-uttrycken i ett villkorligt kompileringsblock måste vara fullständiga logiska instruktioner. Du kan till exempel inte villkorligt kompilera endast attributen för en funktion, men du kan villkorligt deklarera funktionen tillsammans med dess attribut:
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
Exempel
I det här exemplet används konstruktionen #If...Then...#Else
för att avgöra om vissa instruktioner ska kompileras.
#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