Если
имяСимвола1 определено, тогда код внутри
#if и
#elif будет компилироваться и выполнятся.
Иначе если
имяСимвола2 определено, тогда код внутри
#if и
#else будет компилироваться и выполнятся.
Во всех остальных случаях код внутри
#else и
#endif будет компилироваться и выполнятся.
C#
Пример
#if MYDEBUG
...
#elif MYTEXT
...
#else
...
#endif