Freigeben über


Bedingte Kompilierung in Visual Basic

Bei der bedingten Kompilierung werden besondere Codeblöcke in einem Programm selektiv kompiliert, während andere ignoriert werden.

Sie kann beispielsweise eingesetzt werden, wenn Sie Debuganweisungen schreiben möchten, die die Geschwindigkeit verschiedener Herangehensweisen an ein und dieselbe Programmieraufgabe vergleichen, oder eine Anwendung für mehrere Sprachen lokalisieren möchten. Bedingte Kompilierungsanweisungen sind so konzipiert, dass sie nicht zur Laufzeit, sondern während der Kompilierung durchgeführt werden können.

Sie geben Codeblöcke an, die mit der #If...Then...#Else-Direktive bedingt kompiliert werden sollen. Um beispielsweise Versionen einer Anwendung aus demselben Quellcode in französischer und deutscher Sprache zu erstellen, müssen Sie plattformspezifische Codesegmente unter Verwendung der vordefinierten Konstanten FrenchVersion und GermanVersion in #If...Then-Anweisungen einbetten. Dies wird im folgenden Beispiel veranschaulicht:

#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

Wenn Sie den Wert der FrenchVersion-Konstanten für bedingte Kompilierung während der Kompilierung auf True festlegen, wird der bedingte Code für die französische Version kompiliert. Wenn Sie den Wert der GermanVersion-Konstanten auf True festlegen, verwendet der Compiler die deutsche Version. Wenn keine der Konstanten auf True festgelegt wurde, wird der Code aus dem letzten Else-Block ausgeführt.

Hinweis

Die automatische Vervollständigung funktioniert beim Bearbeiten von Code und beim Verwenden von bedingten Kompilierungsdirektiven nicht, wenn der Code nicht Bestandteil der aktuellen Verzweigung ist.

Deklarieren von bedingten Kompilierungskonstanten

Für die Festlegung bedingter Kompilierungskonstanten gibt es drei Möglichkeiten:

  • Im Projekt-Designer

  • Bei Verwendung des Befehlszeilencompilers in der Befehlszeile

  • Im Code

Bedingte Kompilierungskonstanten verfügen über einen bestimmten Gültigkeitsbereich und können nicht vom Standardcode aus aufgerufen werden. Der Gültigkeitsbereich einer bedingten Kompilierungskonstante ist davon abhängig, wie sie eingerichtet wurde. In der folgenden Tabelle werden die Gültigkeitsbereiche von Konstanten aufgelistet, die jeweils mit einer der oben genannten Möglichkeiten deklariert wurden.

Festlegung der Konstante

Gültigkeitsbereich der Konstante

Projekt-Designer

Öffentlich für alle Dateien des Projekts

Befehlszeile

Öffentlich für alle Dateien, die an den Befehlszeilencompiler übergeben wurden

#Const-Anweisung im Code

Privat für die Datei, in der sie deklariert wurde

So legen Sie Konstanten im Projekt-Designer fest

So legen Sie in der Befehlszeile Konstanten fest

  • Verwenden Sie den /d-Schalter, um bedingte Kompilierungskonstanten einzugeben (siehe folgendes Beispiel):

    vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0

    Zwischen dem /d-Schalter und der ersten Konstanten muss kein Leerzeichen stehen. Weitere Informationen finden Sie unter /define (Visual Basic).

    Befehlszeilendeklarationen überschreiben die im Projekt-Designer eingegebenen Deklarationen, löschen diese jedoch nicht. Die im Projekt-Designer festgelegten Argumente bleiben für spätere Kompilierungen wirksam.

    Wenn Konstanten in den Code selbst geschrieben werden, gibt es keine strengen Regeln bezüglich ihrer Platzierung, da ihr Gültigkeitsbereich das gesamte Modul umfasst, in dem sie deklariert wurden.

So legen Sie Konstanten im Code fest

  • Fügen Sie die Konstanten in den Deklarationsblock des Moduls ein, in dem sie verwendet werden. Dadurch bleibt der Code geordnet und ist leichter zu lesen.

Verwandte Themen

Titel

Beschreibung

Programmstruktur und Codekonventionen (Visual Basic)

Gibt Möglichkeiten dafür vor, wie Sie den Code so gestalten können, dass er einfacher zu lesen und zu verwalten ist.

Verweis

#Const-Direktive

#If...Then...#Else-Direktive

/define (Visual Basic)