Visual Basic コードの選択したブロックを条件付きでコンパイルします。
構文
#If expression Then
statements
[ #ElseIf expression Then
[ statements ]
...
#ElseIf expression Then
[ statements ] ]
[ #Else
[ statements ] ]
#End If
部品
expression
#If
ステートメントと#ElseIf
ステートメントに必要です。他の場所では省略可能です。
True
またはFalse
に評価される 1 つ以上の条件付きコンパイラ定数、リテラル、および演算子のみで構成される任意の式。
statements
ステートメント ブロック #If
必要です。他の場所では省略可能です。 関連付けられた式が True
に評価された場合にコンパイルされる Visual Basic プログラム行またはコンパイラ ディレクティブ。
#End If
#If
ステートメント ブロックを終了します。
注釈
画面上では、 #If...Then...#Else
ディレクティブの動作は、 If...Then...Else
ステートメントの動作と同じように表示されます。 ただし、 #If...Then...#Else
ディレクティブはコンパイラによってコンパイルされる内容を評価しますが、 If...Then...Else
ステートメントは実行時に条件を評価します。
通常、条件付きコンパイルは、異なるプラットフォームで同じプログラムをコンパイルするために使用されます。 また、デバッグ コードが実行可能ファイルに表示されないようにするためにも使用されます。 条件付きコンパイル中に除外されたコードは、最終的な実行可能ファイルから完全に省略されるため、サイズやパフォーマンスには影響しません。
評価の結果に関係なく、すべての式は Option Compare Binary
を使用して評価されます。
Option Compare
ステートメントは、#If
および #ElseIf
ステートメントの式には影響しません。
注
#If
、#Else
、#ElseIf
、および#End If
ディレクティブの単一行形式は存在しません。 ディレクティブと同じ行に他のコードを表示することはできません。
条件付きコンパイル ブロック内のステートメントは、完全な論理ステートメントである必要があります。 たとえば、関数の属性のみを条件付きでコンパイルすることはできませんが、その属性と共に関数を条件付きで宣言できます。
#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If
例
この例では、 #If...Then...#Else
コンストラクトを使用して、特定のステートメントをコンパイルするかどうかを決定します。
#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
こちらも参照ください
.NET