Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Директивы препроцессора C#

Директивы препроцессора C#

В этом руководстве мы узнаем о директивах препроцессора, доступных директивах в C#, а также о том, когда, почему и как они используются.

Как следует из названия, директивы препроцессора представляют собой блок операторов, который обрабатывается до начала фактической компиляции. Директивы препроцессора C# — это команды для компилятора, влияющие на процесс компиляции.

Эти команды определяют, какие разделы кода компилировать или как обрабатывать определенные ошибки и предупреждения.

Директива препроцессора C# начинается с # (hash) символ и все директивы препроцессора занимают одну строку. Директивы препроцессора завершаются new line а не semicolon .

Директивы препроцессора, доступные в C#:

Директивы препроцессора в C#
Директива препроцессора Описание Синтаксис
#if Проверяет, истинно ли выражение препроцессора
#if preprocessor-expression
	code to compile
#endif
#elif Используется вместе с #if для проверки нескольких выражений препроцессора
#if preprocessor-expression-1
	code to compile
#elif preprocessor-expression-2
	code to compile
#endif
#else Используется вместе с #if для создания составной условной директивы.
#if preprocessor-expression
	code to compile
#elif
	code to compile
#endif
#endif Используется вместе с #if для обозначения конца условной директивы
#if preprocessor-expression
	code to compile
#endif
#define Используется для определения символа
#define SYMBOL
#undef Используется для отмены определения символа
#undef SYMBOL
#warning Позволяет нам генерировать предупреждение уровня 1 из нашего кода
#warning warning-message
#error Позволяет нам генерировать ошибку из нашего кода
#error error-message
#line Позволяет изменить номер строки компилятора и имя файла для отображения ошибок и предупреждений
#line line-number file-name
#region Позволяет создать область, которую можно развернуть или свернуть при использовании редактора кода Visual Studio
#region region-description
	codes
#endregion
#endregion Указывает на конец региона
#region region-description
	codes
#endregion
#pragma Дает компилятору специальные инструкции для компиляции файла, в котором он появляется.
#pragma pragma-name pragma-arguments
<час>

директива #define

<час>

директива #undef

<час>

директива #if

Пример 1. Как использовать директиву #if?

#define CSHARP

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

Когда мы запустим программу, вывод будет таким:

CSHARP is defined

В приведенной выше программе CSHARP символ определяется с помощью #define директива в начале программы. Внутри Main() метод, #if используется для проверки того, соответствует ли CSHARP правда или нет. Блок кода внутри #if директива компилируется, только если CSHARP определено.

<час>

директива #elif

<час>

директива #else

<час>

директива #endif

Пример 2:Как использовать условную директиву (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
		}
	}
}

Когда мы запустим программу, вывод будет таким:

CSHARP is defined, PYTHON is undefined

В этом примере мы видим использование #elif. и #else директива. Эти директивы используются, когда необходимо проверить несколько условий. Кроме того, символы можно комбинировать с помощью логических операторов для формирования выражения препроцессора.

<час>

#предупреждающая директива

<час>

Пример 3. Как использовать директиву #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");
		}
	}
}

Когда мы запустим программу, вывод будет таким:

Program.cs(10,26): warning CS1030: #warning: 'CSHARP is undefined' [/home/myuser/csharp/directives-project/directives-project.csproj]
#warning directive example

После запуска вышеуказанной программы мы увидим вывод, как указано выше. Текст представляет собой предупреждающее сообщение. Здесь мы генерируем определяемое пользователем предупреждающее сообщение, используя #warning директива.

Обратите внимание, что операторы после #warning также выполняются. Это означает, что #warning директива не завершает работу программы, а просто выдает предупреждение.

<час>

директива #error

Пример 4:Как использовать директиву #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");
		}
	}
}

Когда мы запустим программу, вывод будет таким:

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.

Мы увидим некоторые ошибки, вероятно, как и выше. Здесь мы генерируем определяемую пользователем ошибку.

Еще одна вещь, на которую следует обратить внимание, это то, что программа будет завершена, а строка #error directive example не будет напечатано, как это было в #warning директива.

<час>

директива #line

Пример 5:Как использовать директиву #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
		}
	}
}

Когда мы запустим программу, вывод будет таким:

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]

Мы сохранили приведенный выше пример как Program.cs. . Предупреждение фактически было сгенерировано в line 10. по Program.cs . Использование #line директивы мы изменили номер строки на 200 и имя файла на AnotherProgram.cs которая вызвала ошибку.

<час>

директива #region и #endregion

Пример 6. Как использовать директиву #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
		}
	}
}

Когда мы запустим программу, вывод будет таким:

Hello
Hello
Hello
Hello
Hello
<час>

директива #pragma

Язык C

  1. Ключевые слова и идентификаторы C#
  2. Переменные C++, литералы и константы
  3. Типы данных С++
  4. C Ключевые слова и идентификаторы
  5. C Типы данных
  6. Ключевые слова и идентификаторы Python
  7. регулярное выражение Python
  8. Модуль времени Python
  9. Печать против станков с ЧПУ
  10. Разве SFM в обработке?