Compilação condicional no Visual Basic

Na compilação condicional, blocos específicos de código em um programa são compilados seletivamente enquanto outros são ignorados.

Por exemplo, talvez você queira escrever instruções de depuração que comparem a velocidade de diferentes abordagens com a mesma tarefa de programação, ou talvez você queira localizar um aplicativo para vários idiomas. Instruções de compilação condicional são projetadas para serem executadas durante o tempo de compilação, não no tempo de execução.

Você denota blocos de código a serem compilados condicionalmente com a diretiva #If...Then...#Else. Por exemplo, para criar versões em francês e alemão do mesmo aplicativo do mesmo código-fonte, você insere segmentos de código específicos da plataforma em instruções #If...Then usando as constantes predefinidas FrenchVersion e GermanVersion. O exemplo a seguir demonstra como:

#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 você definir o valor da constante de compilação condicional FrenchVersion para True no tempo de compilação, o código condicional da versão francesa será compilado. Se você definir o valor da constante GermanVersion como True, o compilador usará a versão alemã. Se nenhum dos dois estiver definido como True, será executado o código no último bloco Else.

Observação

O preenchimento automático não funcionará ao editar código e usar diretivas de compilação condicional se o código não fizer parte do branch atual.

Declarando constantes de compilação condicional

Você pode definir constantes de compilação condicional de uma das três maneiras:

  • No Designer de Projeto

  • Na linha de comando ao usar o compilador da linha de comando

  • No seu código

As constantes de compilação condicional têm um escopo especial e não podem ser acessadas pelo código padrão. O escopo de uma constante de compilação condicional depende da maneira como ela é definida. A tabela a seguir lista o escopo das constantes declaradas usando cada uma das três maneiras citadas anteriormente.

Como é definida uma constante Escopo da constante
Designer de Projeto Público para todos os arquivos no projeto
Linha de comando Público para todos os arquivos passados para o compilador da linha de comando
#Const instrução no código Privado para o arquivo no qual ele é declarado
Para definir constantes no Designer de Projeto
– Antes de criar seu arquivo executável, defina as constantes no Designer de Projeto seguindo as etapas fornecidas no Gerenciando propriedades do projeto e da solução.
Para definir as constantes na linha de comando
– Use o switch -d para inserir constantes de compilação condicional, como no exemplo a seguir:
vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0
Não é necessário espaço entre o switch -d e a primeira constante. Para obter mais informações, confira -define (Visual Basic).
As declarações da linha de comando substituem as declarações inseridas no Designer de Projeto, mas não as apagam. Os argumentos definidos no Designer de Projeto permanecem em vigor para as compilações subsequentes.
Ao escrever as constantes no próprio código, não há regras rígidas quanto ao seu posicionamento, pois seu escopo é o módulo inteiro no qual elas são declaradas.
Para definir as constantes no seu código
– Coloque as constantes no bloco de declaração do módulo no qual elas são usadas. Isso ajuda a manter o seu código organizado e mais fácil de ler.
Título Descrição
Estrutura do Programa e Convenções de Código Fornece sugestões para facilitar a leitura e a manutenção do código.

Referência

Diretiva #Const

Diretivas #If...Then...#Else

-define (Visual Basic)