Директива define
Директива define задаёт имя символа,
которое компилятор учитывает при обработке
if и связанных
директив. Символ не хранит число или строку -
он либо объявлен, либо нет. define и
undef размещают в самом начале файла,
до using и остального кода. Это не
const и не
макрос с телом, как в C++.
Синтаксис
#define ИМЯ_СИМВОЛА
Пример
Давайте объявим символ LOGGING и включим
ветку, которая печатает сообщение:
#define LOGGING
using System;
class Program
{
static void Main()
{
#if LOGGING
Console.WriteLine("log on");
#endif
}
}
Результат выполнения кода:
"log on"
Пример
Давайте объявим символ DEMO и выберем
ветку через else, если символ не задан:
#define DEMO
using System;
class Program
{
static void Main()
{
#if DEMO
Console.WriteLine("demo");
#else
Console.WriteLine("plain");
#endif
}
}
Результат выполнения кода:
"demo"
Пример
Давайте проверим несколько символов через логическое И:
#define ALPHA
#define BETA
using System;
class Program
{
static void Main()
{
#if ALPHA && BETA
Console.WriteLine("both");
#endif
}
}
Результат выполнения кода:
"both"