Dela via


#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, #ElseIfoch #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

Se även