English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Инструкции предобработки направляют компилятор на предварительную обработку информации до начала реального компиляции.
Все инструкции предобработки начинаются с #. И на строке, перед инструкцией предобработки могут появляться только пробельные символы. Инструкции предобработки не являются инструкциями, поэтому они не заканчиваются точкой с запятой (;).
Компилятор C# не имеет отдельного предобработчика, но инструкции обрабатываются так, как будто есть отдельный предобработчик. В C#, инструкции предобработки используются для условной компиляции. В отличие от C и C++, они не используются для создания макросов. Инструкция предобработки должна быть единственной инструкцией на строке.
В таблице приведены инструкции предобработки, доступные в C#:
Инструкции предобработки | Описание |
---|---|
#define | Используется для определения набора символов, который становится символом. |
#undef | Используется для аннулирования определения символа. |
#if | Используется для проверки, является ли символ истинным. |
#else | Используется для создания сложных условных инструкций, совместно с #if. |
#elif | Используется для создания сложных условных инструкций. |
#endif | Указание конца условного指令а. |
#line | Это позволяет вам изменить номер строки компилятора и (по желанию) имя файла, в котором выводятся ошибки и предупреждения. |
#error | Это позволяет генерировать ошибку из указанного места в коде. |
#warning | Он позволяет генерировать первый уровень предупреждений из указанного места в коде. |
#region | Он позволяет specify кодовый блок, который можно разворачивать или сворачивать, когда вы используете функцию оглавления редактора Visual Studio Code. |
#endregion | Он обозначает конец блока #region. |
#define создают символы констант предобработчика.
#define позволяет определить символ, так что, используя символ в качестве выражения, переданного команде #if, выражение вернет true. Его синтаксис следующий:
#define symbol
Ниже приведен пример:
#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(); } } }
Когда上面的 код будет компилироваться и выполняться, он произведет следующие результаты:
PI is defined
Вы можете использовать команду #if для создания условной команды. Условные команды используются для проверки, является ли символ правдой. Если да, компилятор выполнит код между #if и следующей командой.
Синтаксис условных команд:
#if symbol [оператор symbol]...
其中,символ Это имя символа, который нужно проверить. Вы также можете использовать true и false, или поместить否定ный оператор перед символом.
Часто используемые операторы:
== (равно)
!= (не равно)
&& (и)
|| (или)
Вы также можете использовать скобки для группировки символов и операторов. Условные команды используются для компиляции кода при отладке версии или компиляции指定的 конфигурации. Одна из #if Условные команды начинаются с явно указанного #endif Конец команды.
Ниже приведен пример использования условий команд:
#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 и VC_V10 определены"); #else Console.WriteLine("DEBUG и VC_V10 не определены"); #endif Console.ReadKey(); } }
Когда上面的 код будет компилироваться и выполняться, он произведет следующие результаты:
DEBUG и VC_V10 определены