C# - Diretivas de pré-processador
As diretivas do pré-processador fornecem instruções ao compilador para pré-processar as informações antes do início da compilação real.
Todas as diretivas de pré-processador começam com #, e somente caracteres de espaço em branco podem aparecer antes de uma diretiva de pré-processador em uma linha. As diretivas do pré-processador não são instruções, portanto, não terminam com ponto e vírgula (;).
O compilador C# não possui um pré-processador separado; no entanto, as diretivas são processadas como se houvesse uma. Em C# as diretivas do pré-processador são usadas para ajudar na compilação condicional. Ao contrário das diretivas C e C++, elas não são usadas para criar macros. Uma diretiva de pré-processador deve ser a única instrução em uma linha.
Diretivas de pré-processador em C#
A tabela a seguir lista as diretivas de pré-processador disponíveis em C# −
Nº Sr. | Diretiva e descrição do pré-processador |
---|---|
1 | #define Ele define uma sequência de caracteres, chamada de símbolo. |
2 | #undef Permite-lhe indefinir um símbolo. |
3 | #if Ele permite testar um símbolo ou símbolos para ver se eles são avaliados como verdadeiros. |
4 | #senão Permite criar uma diretiva condicional composta, juntamente com #if. |
5 | #elif Permite criar uma diretiva condicional composta. |
6 | #endif Especifica o fim de uma diretiva condicional. |
7 | #linha Ele permite que você modifique o número da linha do compilador e (opcionalmente) a saída do nome do arquivo para erros e avisos. |
8 | #error Permite gerar um erro de um local específico em seu código. |
9 | #aviso Ele permite gerar um aviso de nível um de um local específico em seu código. |
10 | #região Ele permite especificar um bloco de código que você pode expandir ou recolher ao usar o recurso de estrutura de tópicos do Editor de código do Visual Studio. |
11 | #endregion Ele marca o fim de um bloco #region. |
O pré-processador #define
A diretiva de pré-processador #define cria constantes simbólicas.
#define permite definir um símbolo de forma que, usando o símbolo como a expressão passada para a diretiva #if, a expressão seja avaliada como verdadeira. Sua sintaxe é a seguinte -
#define symbol
O programa a seguir ilustra isso -
Demonstração ao vivo
#define PI using System; namespace PreprocessorDAppl { class Program { static void Main(string[] args) { #if (PI) Console.WriteLine("PI is defined"); #else Console.WriteLine("PI is not defined"); #endif Console.ReadKey(); } } }
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
PI is defined
Diretivas Condicionais
Você pode usar a diretiva #if para criar uma diretiva condicional. As diretivas condicionais são úteis para testar um símbolo ou símbolos para verificar se eles são avaliados como verdadeiros. Se eles forem avaliados como verdadeiros, o compilador avaliará todo o código entre o #if e a próxima diretiva.
A sintaxe para diretiva condicional é −
#if symbol [operator symbol]...
Onde, símbolo é o nome do símbolo que você deseja testar. Você também pode usar true e false ou preceder o símbolo com o operador de negação.
O símbolo do operador é o operador usado para avaliar o símbolo. Os operadores podem ser um dos seguintes -
- ==(igualdade)
- !=(desigualdade)
- &&(e)
- || (ou)
Você também pode agrupar símbolos e operadores entre parênteses. As diretivas condicionais são usadas para compilar código para uma compilação de depuração ou ao compilar para uma configuração específica. Uma diretiva condicional começando com um #if A diretiva deve ser terminada explicitamente com um #endif diretiva.
O programa a seguir demonstra o uso de diretivas condicionais -
Demonstração ao vivo
#define DEBUG #define VC_V10 using System; public class TestClass { public static void Main() { #if (DEBUG && !VC_V10) Console.WriteLine("DEBUG is defined"); #elif (!DEBUG && VC_V10) Console.WriteLine("VC_V10 is defined"); #elif (DEBUG && VC_V10) Console.WriteLine("DEBUG and VC_V10 are defined"); #else Console.WriteLine("DEBUG and VC_V10 are not defined"); #endif Console.ReadKey(); } }
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
DEBUG and VC_V10 are defined
Linguagem C
- C# Hello World - Seu primeiro programa em C#
- Palavras-chave e identificadores C#
- Variáveis C# e tipos de dados (primitivos)
- Operadores C#
- Operadores C# Bitwise e Bit Shift
- Entrada e saída básica em C#
- Expressões, instruções e blocos em C# (com exemplos)
- Comentários em C#
- Instrução C# switch
- C# ternário (? :) Operador