C# if/then directives for debug vs release
c#, compiler-directives, debugging, release
Solution
`DEBUG`/`_DEBUG` should be defined in VS already.
Remove the `#define DEBUG` in your code. Set preprocessors in the build configuration for that specific build.
The reason it prints "Mode=Debug" is because of your `#define` and then skips the `elif`.
The right way to check is:
#if DEBUG
Console.WriteLine("Mode=Debug");
#else
Console.WriteLine("Mode=Release");
#endif
Don't check for `RELEASE`.
Problem
In Solution properties, I have Configuration set to "release" for my one and only project. At the beginning of the main routine, I have this code, and it is showing "Mode=Debug". I also have these two lines at the very top: ``` #define DEBUG #define RELEASE ``` Am I testing the right variable? ``` #if (DEBUG) Console.WriteLine("Mode=Debug"); #elif (RELEASE) Console.WriteLine("Mode=Release"); #endif ``` My goal is to set different defaults for variables based on debug vs release mode.