#490 – Using the DEBUG Conditional Compilation Symbol
January 4, 2012 2 Comments
By default, Visual Studio creates a Debug build configuration in which the Define DEBUG constant option is checked.
You can check to see if this constant (or “conditional compilation symbol”) is defined in your code, using the #if directive.
public void Bark() { #if DEBUG Console.WriteLine("DEBUG INFO: Entering Dog.Bark() [{0}]", Name); #endif Console.WriteLine("{0} says woof", Name); #if DEBUG Console.WriteLine("DEBUG INFO: Exiting Dog.Bark() [{0}]", Name); #endif }
Code between the #if DEBUG and matching #endif will be compiled only if the DEBUG compilation symbol has been defined. By default, this will be true for the Debug build configuration, but not the Release build configuration.
When we select the Debug build configuration and re-build, we see the following output:
When we select the Release build configuration, where the DEBUG symbol is no longer defined, we see the following output:
Pingback: #491 – Use Debug.WriteLine to Output Debug Information « 2,000 Things You Should Know About C#
Pingback: #491 – Use Debug.WriteLine to Output Debug Information « 2,000 Things You Should Know About C#