English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Instrução de Pré-processador do C#

As instruções de pré-processador guiam o compilador a pré-processar informações antes do início real da compilação.

Todas as instruções de pré-processador começam com # e estão em uma linha, onde apenas caracteres em branco podem aparecer antes da instrução de pré-processador. As instruções de pré-processador não são语句, então elas não terminam com ponto e vírgula (;).

O compilador do C# não tem um pré-processador separado, mas, quando as instruções são processadas, é como se houvesse um pré-processador separado. No C#, as instruções de pré-processador são usadas para atuar na compilação condicional. Comparado com C e C++ Diferente disso, elas não são usadas para criar macros. Uma instrução de pré-processador deve ser a única instrução na linha.

Lista de instruções de pré-processador do C#

A tabela a seguir lista as instruções de pré-processador disponíveis no C#:

Instruções de pré-processadorDescrição
#defineÉ usado para definir uma série de caracteres que se tornam um símbolo.
#undefÉ usado para desdefinir um símbolo.
#ifÉ usado para testar se um símbolo é verdadeiro.
#elseÉ usado para criar instruções condicionais compostas, juntamente com #if.
#elifÉ usado para criar instruções condicionais compostas.
#endifEspecifica o final de uma instrução condicional.
#lineIsso permite que você modifique o número de linhas do compilador e (opcionalmente) o nome do arquivo de saída de erros e avisos.
#errorEle permite gerar um erro a partir de um local específico no código.
#warningEle permite gerar um aviso de nível 1 a partir de um local específico no código.
#regionEle permite especificar um bloco de código expandível ou colapsável ao usar o recurso de esboço do Editor de Código do Visual Studio Code.
#endregionEle identifica o final do bloco #region.

#define pré-processador

#define instruções do pré-processador criam constantes de símbolo.

#define permite definir um símbolo, então, usando o símbolo como expressão passada para a instrução #if, a expressão retornará true. Sua sintaxe é a seguinte:

#define símbolo

O seguinte programa ilustra isso:

#define PI 
using System;
namespace PreprocessorDAppl
{
   class Program
   {
      static void Main(string[] args)
      {
         #if (PI)
            Console.WriteLine("PI está definido");
         #else
            Console.WriteLine("PI não está definido");
         #endif
         Console.ReadKey();
      }
   }
}

Quando o código acima for compilado e executado, ele produzirá o seguinte resultado:

PI está definido

Instrução condicional

Você pode usar a instrução #if para criar uma instrução condicional. As instruções condicionais são usadas para testar se um símbolo é verdadeiro. Se for verdadeiro, o compilador executará o código entre #if e a próxima instrução.

Sintaxe da instrução condicional:

#if símbolo [operador símbolo]...

onde,símbolo é o nome do símbolo a ser testado. Você também pode usar true e false, ou colocar o operador de negação antes do símbolo.

Operadores comuns incluem:

  • == (igual a)

  • != (diferente de)

  • && (e)

  • || (ou)

Você também pode usar parênteses para agrupar símbolos e operadores. As instruções condicionais são usadas para compilar código em versões de depuração ou configurações de compilação específicas. Uma expressão #if As instruções condicionais começam com a necessidade de ser explicitamente precedidas por um #endif Instrução terminada.

O seguinte programa demonstra o uso da instrução condicional:

#define DEBUG
#define VC_V10
using System;
public class TestClass
{
   public static void Main()
   {
      #if (DEBUG && !VC_V10)
         Console.WriteLine("DEBUG está definido");
      #elif (!DEBUG && VC_V10)
         Console.WriteLine("VC_V"}10 está definido");
      #elif (DEBUG && VC_V10)
         Console.WriteLine("DEBUG e VC_V10 são definidos");
      #else
         Console.WriteLine("DEBUG e VC_V10 não são definidos");
      #endif
      Console.ReadKey();
   }
}

Quando o código acima for compilado e executado, ele produzirá o seguinte resultado:

DEBUG e VC_V10 são definidos