次の方法で共有


#If...Then...#Else ディレクティブ

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

こちらも参照ください