You can use more complex expressions in #if and #elif directives, instead of just checking to see whether a single conditional compilation symbol is defined.
In the example below, the #elif directive triggers if the DOGSBARK symbol is defined and then DOGSGROWL symbol is not defined.
#define DOGSBARK //#define DOGSWAG //#define DOGSGROWL using System; using DogLibrary; namespace ConsoleApplication1 { class Program { static void Main() { Dog d = new Dog("Kirby", 12); #if DOGSWAG d.WagTail(); #elif DOGSBARK && !DOGSGROWL d.Bark(); #else d.BarkAndGrowl(); #endif } } }
You can build more complex expressions using parentheses and the && (logical AND) and || (logical OR) operators.
#if (DOGSWAG && DOGSDOTRICKS) || (DOGSDOEVERYTHING) d.WagAndFetch(); #endif
Filed under: Basics Tagged: #elif, #if, Basics, C#, Preprocessing Directives Image may be NSFW.
Clik here to view.

Clik here to view.
