NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

#if

#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:

symbol
The name of the symbol you want to test. You can also use true and false. symbol can be prefaced with the negation operator. For example, !true will evaluate to false.
operator (Optional)
You can use the following operators to evaluate multiple symbols:

== (equality)

!= (inequality)

&& (and)

|| (or)

You can group symbols and operators with parentheses.

Remarks

#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.

Example

#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
   }
}

Output

DEBUG and VC_V6 are defined

See Also

C# Preprocessor Directives