Директива 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"