在 條件式編譯中,程式中的特定程式代碼區塊會選擇性地編譯,而其他區塊則會忽略。
例如,您可能想要撰寫偵錯語句,以比較不同方法在相同程式設計任務中的速度,或者您可能想要將應用程式本地化為多種語言。 條件式編譯語句的設計目的是在編譯期間執行,而不是在運行時間執行。
您可以使用 #If...Then...#Else 指示詞來表示需有條件編譯的程式碼區塊。 例如,若要從相同的原始程式碼建立相同應用程式的法文和德文語言版本,您可以使用預先定義的常數#If...Then和 FrenchVersion,在語句中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) 。 命令行宣告會覆寫在 項目設計工具中輸入的宣告,但不會清除它們。 在項目設計工具中設定的自變數會繼續生效,以供後續編譯使用。 在程式代碼本身撰寫常數時,其位置沒有嚴格的規則,因為其範圍是宣告它們的整個模組。 |
| 在程式代碼中設定常數 |
|---|
| - 將常數放在使用的模組宣告區塊中。 這有助於讓您的程式代碼保持組織且更容易閱讀。 |
[相關主題]
| 標題 | 說明 |
|---|---|
| 程序結構和程式代碼慣例 | 提供可讓您的程式代碼易於閱讀和維護的建議。 |