Директива define в C#
Символ препроцессора не занимает места в IL: компилятор либо оставляет ветку, либо вырезает её.
Имя задают без числа и без строки: это только метка, которую проверяют в #if. Директива должна стоять первой в файле.
Объявим символ и выведем строку только в активной ветке. Символ CAP объявлен, поэтому активна его ветка:
#define CAP
#if CAP
Console.WriteLine("cap"); // выведет "cap"
#endif
Объявите символ BETA и выведите слово "beta" только когда он объявлен.