共用方式為


Visual Basic 中的條件式編譯

條件式編譯中,程式中的特定程式代碼區塊會選擇性地編譯,而其他區塊則會忽略。

例如,您可能想要撰寫偵錯語句,以比較不同方法在相同程式設計任務中的速度,或者您可能想要將應用程式本地化為多種語言。 條件式編譯語句的設計目的是在編譯期間執行,而不是在運行時間執行。

您可以使用 #If...Then...#Else 指示詞來表示需有條件編譯的程式碼區塊。 例如,若要從相同的原始程式碼建立相同應用程式的法文和德文語言版本,您可以使用預先定義的常數#If...ThenFrenchVersion,在語句中GermanVersion內嵌平臺特定的程式代碼區段。 下列範例示範如何:

#If FrenchVersion Then
   ' <code specific to the French language version>.
#ElseIf GermanVersion Then
   ' <code specific to the German language version>.
#Else
        ' <code specific to other versions>.
#End If

如果您在編譯時期將條件式編譯常數的值 FrenchVersion 設定為 True ,則會編譯法文版的條件式程序代碼。 如果您將常數的值 GermanVersion 設定為 True,編譯程式會使用德文版本。 如果兩者都未設定為 True,則最後一個 Else 區塊中的程式代碼會執行。

備註

如果程式碼不是當前分支的一部分,那麼在編輯程式碼並使用條件編譯指令時,自動完成將無法運作。

宣告條件式編譯常數

您可以使用下列三種方式之一來設定條件式編譯常數:

  • 項目設計工具

  • 使用命令列編譯器時在命令列中

  • 在您的程式代碼中

條件式編譯常數具有特殊範圍,而且無法從標準程式代碼存取。 條件式編譯常數的範圍取決於其設定方式。 下表列出使用上述三種方式所宣告的常數範圍。

如何設定常數 常數的範圍
項目設計工具 公開於專案的所有檔案
命令列 傳遞至命令列編譯器的所有檔案皆為公開
#Const 程序代碼中的語句 宣告所在檔案的私有
在項目設計工具中設定常數
- 建立可執行檔之前,請遵循管理專案和方案屬性中提供的步驟,在專案設計工具中設定常數。
在命令行設定常數
- 使用 -d 參數來輸入條件式編譯常數,如下列範例所示:
vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0
-d 開關與第一個常數之間不需要空格。 如需詳細資訊,請參閱 -define (Visual Basic)
命令行宣告會覆寫在 項目設計工具中輸入的宣告,但不會清除它們。 在項目設計工具中設定的自變數會繼續生效,以供後續編譯使用。
在程式代碼本身撰寫常數時,其位置沒有嚴格的規則,因為其範圍是宣告它們的整個模組。
在程式代碼中設定常數
- 將常數放在使用的模組宣告區塊中。 這有助於讓您的程式代碼保持組織且更容易閱讀。
標題 說明
程序結構和程式代碼慣例 提供可讓您的程式代碼易於閱讀和維護的建議。

參考文獻

#Const 指令

#If...Then...#Else 指令

-define (Visual Basic)