Compilazione condizionale in Visual BasicConditional Compilation in Visual Basic

Nella compilazione condizionale, determinati blocchi di codice in un programma vengono compilati in modo selettivo mentre altri vengono ignorati.In conditional compilation, particular blocks of code in a program are compiled selectively while others are ignored.

È ad esempio possibile scrivere istruzioni di debug che confrontano la velocità di approcci diversi alla stessa attività di programmazione oppure è possibile localizzare un'applicazione per più linguaggi.For example, you may want to write debugging statements that compare the speed of different approaches to the same programming task, or you may want to localize an application for multiple languages. Le istruzioni di compilazione condizionale sono progettate per essere eseguite in fase di compilazione, non in fase di esecuzione.Conditional compilation statements are designed to run during compile time, not at run time.

È possibile indicare blocchi di codice da compilare in modo condizionale con #If...Then...#Else la direttiva.You denote blocks of code to be conditionally compiled with the #If...Then...#Else directive. Ad esempio, per creare versioni in francese e in lingua tedesca della stessa applicazione dallo stesso codice sorgente, è possibile incorporare segmenti di codice specifici della piattaforma #If...Then nelle istruzioni usando le FrenchVersion costanti predefinite e GermanVersion.For example, to create French- and German-language versions of the same application from the same source code, you embed platform-specific code segments in #If...Then statements using the predefined constants FrenchVersion and GermanVersion. Nell'esempio seguente viene illustrato come:The following example demonstrates how:

#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

Se si imposta il valore della FrenchVersion costante di compilazione condizionale su True in fase di compilazione, viene compilato il codice condizionale per la versione francese.If you set the value of the FrenchVersion conditional compilation constant to True at compile time, the conditional code for the French version is compiled. Se si imposta il valore della GermanVersion costante su True, il compilatore utilizzerà la versione tedesca.If you set the value of the GermanVersion constant to True, the compiler uses the German version. Se nessuno dei due è Trueimpostato su, viene eseguito il Else codice nell'ultimo blocco.If neither is set to True, the code in the last Else block runs.

Nota

Il completamento automatico non funzionerà quando si modifica il codice e si usano le direttive di compilazione condizionale se il codice non fa parte del ramo corrente.Autocompletion will not function when editing code and using conditional compilation directives if the code is not part of the current branch.

Dichiarazione di costanti di compilazione condizionaleDeclaring Conditional Compilation Constants

È possibile impostare le costanti di compilazione condizionale in uno dei tre modi seguenti:You can set conditional compilation constants in one of three ways:

  • In Progettazione progettiIn the Project Designer

  • Dalla riga di comando quando si usa il compilatore da riga di comandoAt the command line when using the command-line compiler

  • Nel codiceIn your code

Le costanti di compilazione condizionale hanno un ambito speciale e non è possibile accedervi dal codice standard.Conditional compilation constants have a special scope and cannot be accessed from standard code. L'ambito di una costante di compilazione condizionale dipende dal modo in cui è impostato.The scope of a conditional compilation constant is dependent on the way it is set. La tabella seguente elenca l'ambito delle costanti dichiarate usando ognuno dei tre modi descritti in precedenza.The following table lists the scope of constants declared using each of the three ways mentioned above.

Impostazione della costanteHow constant is set Ambito della costanteScope of constant
Progettazione progettiProject Designer Pubblico in tutti i file del progettoPublic to all files in the project
Riga di comandoCommand line Pubblico per tutti i file passati al compilatore da riga di comandoPublic to all files passed to the command-line compiler
#Constistruzione nel codice#Const statement in code Privato per il file in cui è dichiaratoPrivate to the file in which it is declared
Per impostare costanti in Progettazione progettiTo set constants in the Project Designer
-Prima di creare il file eseguibile, impostare costanti in Progettazione progetti attenendosi alla procedura descritta in gestione delle proprietà del progetto e della soluzione.- Before creating your executable file, set constants in the Project Designer by following the steps provided in Managing Project and Solution Properties.
Per impostare costanti dalla riga di comandoTo set constants at the command line
-Usare l'opzione /d per immettere le costanti di compilazione condizionale, come nell'esempio seguente:- Use the /d switch to enter conditional compilation constants, as in the following example:
vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0
Non è necessario alcuno spazio tra l'opzione /d e la prima costante.No space is required between the /d switch and the first constant. Per ulteriori informazioni, vedere /define (Visual Basic).For more information, see /define (Visual Basic).
Le dichiarazioni della riga di comando eseguono l'override delle dichiarazioni immesse in Progettazione progetti, ma non le cancellano.Command-line declarations override declarations entered in the Project Designer, but do not erase them. Gli argomenti impostati in Progettazione progetti rimangono attivi per le compilazioni successive.Arguments set in Project Designer remain in effect for subsequent compilations.
Quando si scrivono costanti nel codice, non sono presenti regole rigide per la loro posizione, poiché il relativo ambito è l'intero modulo in cui sono dichiarati.When writing constants in the code itself, there are no strict rules as to their placement, since their scope is the entire module in which they are declared.
Per impostare costanti nel codiceTo set constants in your code
: Inserire le costanti nel blocco di dichiarazione del modulo in cui vengono usate.- Place the constants in the declaration block of the module in which they are used. Ciò consente di organizzare e semplificare la lettura del codice.This helps keep your code organized and easier to read.
TitoloTitle DescrizioneDescription
Struttura del programma e convenzioni di scrittura del codiceProgram Structure and Code Conventions Fornisce suggerimenti per semplificare la lettura e la gestione del codice.Provides suggestions for making your code easy to read and maintain.

RiferimentiReference

Direttiva #Const#Const Directive

Direttive #If...Then...#Else#If...Then...#Else Directives

/define (Visual Basic)/define (Visual Basic)