#if lets you begin a conditional directive, testing a symbol or symbols to see if they evaluate to true. If they do evaluate to true, the compiler evaluates all the code between the #if and the next directive.
#if symbol [operator symbol]...
where:
== (equality)
!= (inequality)
&& (and)
|| (or)
You can group symbols and operators with parentheses.
#if, along with the #else, #elif, #endif, #define, and #undef directives, lets you include or exclude code based on the condition of one or more symbols. This can be most useful when compiling code for a debug build or when compiling for a specific configuration.
A conditional directive beginning with a #if directive must explicitly be terminated with a #endif directive.
#define DEBUG #define VC_V6 using System; public class MyClass { public static void Main() { #if (DEBUG && !VC_V6) Console.WriteLine("DEBUG is defined"); #elif (!DEBUG && VC_V6) Console.WriteLine("VC_V6 is defined"); #elif (DEBUG && VC_V6) Console.WriteLine("DEBUG and VC_V6 are defined"); #else Console.WriteLine("DEBUG and VC_V6 are not defined"); #endif } }
DEBUG and VC_V6 are defined