English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
A tabela a seguir lista as instruções de pré-processador disponíveis no C#:
Instruções de pré-processador | Descriçã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. |
#endif | Especifica o final de uma instrução condicional. |
#line | Isso permite que você modifique o número de linhas do compilador e (opcionalmente) o nome do arquivo de saída de erros e avisos. |
#error | Ele permite gerar um erro a partir de um local específico no código. |
#warning | Ele permite gerar um aviso de nível 1 a partir de um local específico no código. |
#region | Ele 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. |
#endregion | Ele identifica o final do bloco #region. |
#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
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