#If...Then...#Else 指示詞

有條件地編譯 Visual Basic 程式碼的選取區塊。

語法

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

組件

expression
#If#ElseIf 陳述式的必要項目,在其他地方為選擇性。 任何運算式,只包含評估為 TrueFalse 的一或多個條件式編譯器常數、常值和運算子。

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

另請參閱