#If... Ezután...#Else irányelvek

Feltételesen lefordítja a Visual Basic-kód kijelölt blokkjait.

Syntax

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

Részek

expression
Máshol nem kötelező megadni az utasításokat és #ElseIf az #If utasításokat. Bármely kifejezés, amely kizárólag egy vagy több feltételes fordítóállandóból, konstansból és operátorból áll, amely kiértékeli True a következőt: vagy False.

statements
Az utasításblokkhoz #If szükséges, máshol nem kötelező. A Visual Basic programsorai vagy fordítói irányelvei akkor lesznek lefordítva, ha a társított kifejezés kiértékeli a következőt True: .

#End If
Leállítja az #If utasításblokkot.

Megjegyzések

A felszínen az irányelvek viselkedése #If...Then...#Else ugyanúgy jelenik meg, mint az If...Then...Else utasításokban. Az #If...Then...#Else irányelvek azonban kiértékelik a fordító által összeállított adatokat, míg az utasítások futásidőben értékelik a If...Then...Else feltételeket.

A feltételes fordítást általában arra használják, hogy ugyanazt a programot lefordítsa különböző platformokra. Azt is megakadályozza, hogy a hibakeresési kód megjelenjen egy végrehajtható fájlban. A feltételes fordítás során kizárt kód teljesen hiányzik a végleges végrehajtható fájlból, így nincs hatással a méretre vagy a teljesítményre.

A kiértékelés eredményétől függetlenül az összes kifejezés kiértékelése a használatával Option Compare Binarytörténik. Az Option Compare utasítás nem befolyásolja a benne és #ElseIf az utasításban lévő #If kifejezéseket.

Feljegyzés

A , #Else, #ElseIfés #End If irányelvek egyetlensoros formája #Ifsem létezik. Más kód nem jelenhet meg ugyanazon a sorban, mint bármelyik irányelv.

A feltételes fordítási blokkban lévő utasításoknak teljes logikai utasításoknak kell lenniük. Például nem fordíthatja le feltételesen egy függvény attribútumait, de feltételesen deklarálhatja a függvényt az attribútumaival együtt:

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

Példa

Ez a példa a #If...Then...#Else szerkezettel határozza meg, hogy egyes utasítások fordítása szükséges-e.

#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

Lásd még