Arahan #If...Then...#Else
Mengompilasi secara kondisional blok pilihan kode Visual Basic.
Sintaks
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
Generator
expression
Wajib diisi untuk pernyataan #If
dan #ElseIf
, opsional di tempat lain. Ekspresi apa pun, yang secara eksklusif terdiri dari satu atau lebih konstanta kompiler kondisional, harfiah, dan operator, yang mengevaluasi ke True
atau False
.
statements
Wajib untuk blok pernyataan #If
, opsional untuk yang lain. Garis program Visual Basic atau arahan kompiler yang dikompilasi jika ekspresi terkait mengevaluasi ke True
.
#End If
Menghentikan blok pernyataan #If
.
Keterangan
Di permukaan, perilaku arahan #If...Then...#Else
muncul sama seperti perilaku dengan pernyataan If...Then...Else
. Namun, arahan #If...Then...#Else
mengevaluasi apa yang dikompilasi kompiler, sedangkan pernyataan If...Then...Else
mengevaluasi kondisi pada durasi.
Kompilasi kondisional biasanya digunakan untuk mengompilasi program yang sama untuk platform yang berbeda. Ini juga digunakan untuk mencegah kode debugging muncul dalam file yang dapat dieksekusi. Kode yang dikecualikan selama kompilasi kondisional benar-benar dihilangkan dari file akhir yang dapat dieksekusi, sehingga tidak berpengaruh pada ukuran atau performa.
Terlepas dari hasil evaluasi apa pun, semua ekspresi dievaluasi menggunakan Option Compare Binary
. Pernyataan Option Compare
tidak memengaruhi ekspresi pada pernyataan #If
dan #ElseIf
.
Catatan
Tidak ada bentuk baris tunggal dari arahan #If
, #Else
, #ElseIf
, dan #End If
. Tidak ada kode lain yang dapat muncul pada baris yang sama dengan salah satu arahan.
Pernyataan dalam blok kompilasi kondisional harus merupakan pernyataan logis lengkap. Misalnya, Anda tidak dapat mengompilasi secara kondisional atribut fungsi saja, tetapi Anda dapat mendeklarasikan fungsi itu secara kondisional bersama dengan atributnya:
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
Contoh
Contoh ini menggunakan konstruksi #If...Then...#Else
untuk menentukan apakah akan mengompilasi pernyataan tertentu.
#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