Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Diretivas de pré-processador C#

Diretivas do pré-processador C#


Neste tutorial, aprenderemos sobre Diretivas de pré-processador, diretivas disponíveis em C# e quando, por que e como elas são usadas.

Como o nome justifica, as diretivas de pré-processador são um bloco de instruções que são processadas antes do início da compilação real. As diretivas de pré-processador C# são os comandos para o compilador que afetam o processo de compilação.

Esses comandos especificam quais seções do código compilar ou como lidar com erros e avisos específicos.

A diretiva de pré-processador C# começa com um # (hash) símbolo e todas as diretivas do pré-processador duram uma linha. As diretivas do pré-processador são encerradas por new line em vez de semicolon .

As diretivas de pré-processador disponíveis em C# são:
Diretivas de pré-processador em C#
Diretiva de pré-processador Descrição Sintaxe
#if Verifica se uma expressão do pré-processador é verdadeira ou não
#if preprocessor-expression
	code to compile
#endif
#elif Usado junto com #if para verificar várias expressões de pré-processador
#if preprocessor-expression-1
	code to compile
#elif preprocessor-expression-2
	code to compile
#endif
#else Usado junto com #if para criar uma diretiva condicional composta.
#if preprocessor-expression
	code to compile
#elif
	code to compile
#endif
#endif Usado junto com #if para indicar o fim de uma diretiva condicional
#if preprocessor-expression
	code to compile
#endif
#define Usado para definir um símbolo
#define SYMBOL
#undef Usado para indefinir um símbolo
#undef SYMBOL
#warning Permite gerar um aviso de nível 1 do nosso código
#warning warning-message
#error Permite gerar erro do nosso código
#error error-message
#line Permite modificar o número da linha do compilador e o nome do arquivo para exibir erros e avisos
#line line-number file-name
#region Permite criar uma região que pode ser expandida ou recolhida ao usar um Editor de código do Visual Studio
#region region-description
	codes
#endregion
#endregion Indica o fim de uma região
#region region-description
	codes
#endregion
#pragma Dá ao compilador instruções especiais para a compilação do arquivo no qual ele aparece.
#pragma pragma-name pragma-arguments

#define diretiva


#undef diretiva


#if diretiva

Exemplo 1:Como usar a diretiva #if?

#define CSHARP

using System;
 
namespace Directive
{
	class ConditionalDirective
	{
		public static void Main(string[] args)
		{
			#if (CSHARP)
				Console.WriteLine("CSHARP is defined");
			#endif
		}
	}
}

Ao executarmos o programa, a saída será:
CSHARP is defined

No programa acima, CSHARP símbolo é definido usando o #define diretiva no início do programa. Dentro do Main() método, #if é usada para testar se CSHARP é verdade ou não. O bloco de código dentro de #if diretiva é compilada somente se CSHARP é definido.

Diretiva #elif


Diretiva #else


Diretiva #endif

Exemplo 2:Como usar a diretiva condicional (if, elif, else, endif) ?

#define CSHARP
#undef PYTHON
 
using System;
 
namespace Directive
{
	class ConditionalDirective
	{
		static void Main(string[] args)
		{
			#if (CSHARP && PYTHON)
				Console.WriteLine("CSHARP and PYTHON are defined");
			#elif (CSHARP && !PYTHON)
				Console.WriteLine("CSHARP is defined, PYTHON is undefined");
			#elif (!CSHARP && PYTHON)
				Console.WriteLine("PYTHON is defined, CSHARP is undefined");
			#else
				Console.WriteLine("CSHARP and PYTHON are undefined");
			#endif
		}
	}
}

Ao executarmos o programa, a saída será:
CSHARP is defined, PYTHON is undefined

Neste exemplo, podemos ver o uso de #elif e #else diretiva. Essas diretivas são usadas quando há várias condições a serem testadas. Além disso, os símbolos podem ser combinados usando operadores lógicos para formar uma expressão de pré-processador.

#diretiva de aviso


Exemplo 3:como usar a diretiva #warning?

using System;
 
namespace Directives
{
	class WarningDirective
	{
		public static void Main(string[] args)
		{
			#if (!CSHARP)
				#warning CSHARP is undefined
			#endif
			Console.WriteLine("#warning directive example");
		}
	}
}

Ao executarmos o programa, a saída será:
Program.cs(10,26): warning CS1030: #warning: 'CSHARP is undefined' [/home/myuser/csharp/directives-project/directives-project.csproj]
#warning directive example

Depois de executar o programa acima, veremos a saída como acima. O texto representa uma mensagem de aviso. Aqui, estamos gerando uma mensagem de aviso definida pelo usuário usando o #warning diretiva.

Observe que as instruções após o #warning diretiva também são executadas. Isso significa que o #warning A diretiva não encerra o programa, mas apenas lança um aviso.

Diretiva #error

Exemplo 4:como usar a diretiva #error?

using System;
 
namespace Directive
{
	class Error
	{
		public static void Main(string[] args)
		{
			#if (!CSHARP)
				#error CSHARP is undefined
			#endif
			Console.WriteLine("#error directive example");
		}
	}
}



Ao executarmos o programa, a saída será:
Program.cs(10,24): error CS1029: #error: 'CSHARP is undefined' [/home/myuser/csharp/directives-project/directives-project.csproj]
The build failed. Please fix the build errors and run again.

Veremos alguns erros, provavelmente como acima. Aqui estamos gerando um erro definido pelo usuário.

Outra coisa a notar aqui é que o programa será encerrado e a linha #error directive example não será impresso como estava no #warning diretiva.

#line diretiva

Exemplo 5:Como usar a diretiva #line?

using System;
 
namespace Directive
{
	class Error
	{
		public static void Main(string[] args)
		{
			#line 200 "AnotherProgram.cs"
			#warning Actual Warning generated by Program.cs on line 10
		}
	}
}

Ao executarmos o programa, a saída será:
AnotherProgram.cs(200,22): warning CS1030: #warning: 'Actual Warning generated by Program.cs on line 10' [/home/myuser/csh
arp/directive-project/directive-project.csproj]

Salvamos o exemplo acima como Program.cs . O aviso foi realmente gerado em line 10 por Program.cs . Usando o #line diretiva, alteramos o número da linha para 200 e o nome do arquivo para AnotherProgram.cs que gerou o erro.

#region e #endregion diretiva

Exemplo 6:como usar a diretiva #region?

using System;
 
namespace Directive
{
	class Region
	{
		public static void Main(string[] args)
		{
			#region Hello
			Console.WriteLine("Hello");
			Console.WriteLine("Hello");
			Console.WriteLine("Hello");
			Console.WriteLine("Hello");
			Console.WriteLine("Hello");
			#endregion
		}
	}
}

Ao executarmos o programa, a saída será:
Hello
Hello
Hello
Hello
Hello

Diretiva #pragma

Exemplo 7:Como usar a diretiva #pragma?

using System;
 
namespace Directive
{
	class Error
	{
		public static void Main(string[] args)
		{
			#pragma warning disable
			#warning This is a warning 1
			#pragma warning restore
			#warning This is a warning 2
		}
	}
}

Ao executarmos o programa, a saída será:
Program.cs(12,22): warning CS1030: #warning: 'This is a warning 2' [/home/myuser/csharp/directive-project/directive-project.csproj]

Podemos ver que apenas o segundo aviso é exibido na tela de saída.

Isso ocorre porque, inicialmente, desabilitamos todos os avisos antes do primeiro aviso e os restauramos apenas antes do segundo aviso. Esta é a razão pela qual o primeiro aviso foi ocultado.

Também podemos desabilitar o aviso específico em vez de todos os avisos.

Para saber mais sobre #pragma , visite #pragma (referência C#).

Linguagem C

  1. Palavras-chave e identificadores C#
  2. Variáveis, literais e constantes de C++
  3. Tipos de dados C++
  4. C Palavras-chave e Identificadores
  5. Tipos de dados C
  6. Palavras-chave e identificadores do Python
  7. Python RegEx
  8. Módulo de tempo Python
  9. Impressão vs máquinas CNC
  10. t é SFM em Usinagem?