Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
80 of 1492 menu
◀ ▶

Директива undef

Директива undef убирает имя символа, которое раньше задали через define или ключ компилятора "/define". После undef проверка "#if ИМЯ" считает символ не объявленным. Как и define, undef пишут в начале файла, до using и исполняемого кода.

Синтаксис

#undef ИМЯ_СИМВОЛА

Пример

Давайте объявим символ, сразу снимем его и проверим ветку #else:

#define TEMP #undef TEMP using System; class Program { static void Main() { #if TEMP Console.WriteLine("on"); #else Console.WriteLine("off"); #endif } }

Результат выполнения кода:

"off"

Пример

Давайте снимем старый символ и объявим новый перед проверкой:

#define OLD #undef OLD #define NEW using System; class Program { static void Main() { #if NEW Console.WriteLine("new flag"); #endif } }

Результат выполнения кода:

"new flag"

Пример

Давайте снимем один символ и оставим другой:

#define A #define B #undef A using System; class Program { static void Main() { #if B Console.WriteLine("b only"); #endif } }

Результат выполнения кода:

"b only"

Смотрите также

  • директива define,
    которая объявляет символ условной компиляции
  • директива if,
    которая выбирает код до компиляции
  • директива endif,
    которая завершает блок условной компиляции
  • директива pragma,
    которая передаёт указания компилятору
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить