Você sabe o que é Compilação Condicinal?

Tatiana LimaTatiana Lima
2 min read

Compilação Condicional é uma técnica utilizada em programação para incluir ou excluir partes do código durante o processo de compilação, com base em condições especificadas pelo programador. Isso permite que você controle quais partes do código são compiladas e incluídas no programa final, dependendo de variáveis ou diretivas definidas no código fonte.

A linguagem C# também tem suporte à compilação condicional, usa o símbolo "#" e diretivas de pré-processamento, como #define , #if , #else e #endif para determinar quais partes do código serão compiladas.

#define

A principal utilidade do #define é permitir que você escreva código que só será compilado se determinado símbolo estiver definido.

#if VersaoProfissional
const bool PermitirIntegrações = true;
const bool PermitirSuporteTecnico = true;
#else
const bool PermitirIntegrações = false;
const bool PermitirSuporteTecnico = false;
#endif

Console.WriteLine($"Permitir Integrações: {PermitirIntegrações}");
Console.WriteLine($"Permitir Suporte Tecnico: {PermitirSuporteTecnico}");

Agora siga os seguintes passos:

  1. Clique com o botão direito do mouse sobre o nome do projeto. No menu de contexto, selecione a opção Propriedades;

  2. A página de propriedades do projeto será exibida. No menu da esquerda, clique na guia Build para ativar a página.

    Execute o projeto em modo debug

#error #warn

O #erro e o #warn serve para avisar ao desenvolvedor sobre erros ou avisos no processo de compilação

#if VersaoProfissional && VersaoTestes
#error O sistema não pode ser Profissional e de Testes ao mesmo tempo
#endif

#DEBUG

A constante DEBUG é inserida de forma automática quando compilamos o programa em modo Debug e suprimida quando selecionamos o modo Release.

#if DEBUG
Console.WriteLine($"Você está em debug.");
#else
Console.WriteLine($"Você está em release.");
#endif

#region Nome_da_região #endregion

As diretivas de pré-processador #region e #endregion são usadas para criar regiões no código-fonte.

#region Main

for (int i = 0; i < 10000; i++)
{
    #region Mostrar apenas os pares
    if (i % 2 == 0)
        Console.WriteLine($"é par {i}");
    #endregion
}
#endregion

Conclusão

Conforme você pôde observar a linguagem C# oferece recursos interessantes de compilação condicional por meio de suas diretivas de pré-processador. entretanto, a compilação condicional não será capaz de resolver todos os nossos problemas. Por isso tenha essa conhecimento como uma "carta na manga" para momentos em que se fizer necessário.

Veja o código completo aqui https://github.com/tatianacardosolima/Exemplos.NET.Blog/blob/main/src/CompilacaoCondicional/Program.cs

0
Subscribe to my newsletter

Read articles from Tatiana Lima directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Tatiana Lima
Tatiana Lima

I am developer