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

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

Директивы препроцессора дают компилятору инструкции о предварительной обработке информации перед началом фактической компиляции.

Все директивы препроцессора начинаются с #, и перед директивой препроцессора в строке могут стоять только пробельные символы. Директивы препроцессора не являются операторами, поэтому они не заканчиваются точкой с запятой (;).

Компилятор C# не имеет отдельного препроцессора; однако директивы обрабатываются так, как если бы они были. В C# директивы препроцессора используются для помощи в условной компиляции. В отличие от директив C и C++, они не используются для создания макросов. Директива препроцессора должна быть единственной инструкцией в строке.

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

В следующей таблице перечислены директивы препроцессора, доступные в C# —

<тд>

#определить

Он определяет последовательность символов, называемую символом.

<тд>

#undef

Это позволяет отменить определение символа.

<тд>

#если

Это позволяет проверить символ или символы, чтобы увидеть, верны ли они.

<тд>

#еще

Это позволяет создать составную условную директиву вместе с #if.

<тд>

#элиф

Это позволяет создать составную условную директиву.

<тд>

#endif

Указывает конец условной директивы.

<тд>

#строка

Он позволяет изменить номер строки компилятора и (необязательно) имя файла, выводимого для ошибок и предупреждений.

<тд>

#ошибка

Это позволяет генерировать ошибку из определенного места в вашем коде.

<тд>

#предупреждение

Это позволяет генерировать предупреждение первого уровня из определенного места в вашем коде.

<тд>

#регион

Он позволяет указать блок кода, который можно развернуть или свернуть при использовании функции структурирования редактора кода Visual Studio.

<тд>

#endregion

Он отмечает конец блока #region.

Серийный номер Директива и описание препроцессора
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

  1. C# Hello World — ваша первая программа на C#
  2. Ключевые слова и идентификаторы C#
  3. Переменные C# и (примитивные) типы данных
  4. Операторы С#
  5. Побитовые операторы C# и операторы сдвига битов
  6. Базовый ввод и вывод C#
  7. Выражения, операторы и блоки C# (с примерами)
  8. С# Комментарии
  9. Оператор переключения C#
  10. С# тернарный (?:) оператор