C# — директивы препроцессора
Директивы препроцессора дают компилятору инструкции о предварительной обработке информации перед началом фактической компиляции.
Все директивы препроцессора начинаются с #, и перед директивой препроцессора в строке могут стоять только пробельные символы. Директивы препроцессора не являются операторами, поэтому они не заканчиваются точкой с запятой (;).
Компилятор C# не имеет отдельного препроцессора; однако директивы обрабатываются так, как если бы они были. В C# директивы препроцессора используются для помощи в условной компиляции. В отличие от директив C и C++, они не используются для создания макросов. Директива препроцессора должна быть единственной инструкцией в строке.
Директивы препроцессора в C#
В следующей таблице перечислены директивы препроцессора, доступные в C# —
Серийный номер | Директива и описание препроцессора |
---|---|
1 | <тд>|
2 | <тд>|
3 | <тд>|
4 | <тд>|
5 | <тд>|
6 | <тд>|
7 | <тд>|
8 | <тд>|
9 | <тд>|
10 | <тд>|
11 | <тд>
Препроцессор #define
Директива препроцессора #define создает символические константы.
#define позволяет определить символ таким образом, что при использовании символа в качестве выражения, переданного в директиву #if, выражение оценивается как истинное. Его синтаксис выглядит следующим образом —
#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 [operator 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 and VC_V10 are defined"); #else Console.WriteLine("DEBUG and VC_V10 are not defined"); #endif Console.ReadKey(); } }
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
DEBUG and VC_V10 are defined
Язык C
- C# Hello World — ваша первая программа на C#
- Ключевые слова и идентификаторы C#
- Переменные C# и (примитивные) типы данных
- Операторы С#
- Побитовые операторы C# и операторы сдвига битов
- Базовый ввод и вывод C#
- Выражения, операторы и блоки C# (с примерами)
- С# Комментарии
- Оператор переключения C#
- С# тернарный (?:) оператор