Conditional Compilation
Conditional compilation is the ability to specify that a certain block of code will be compiled into the application only under certain conditions. Conditional compilation uses precompiler directives to affect which lines are included in the compilation process. This feature is often used to wrap code used only for debugging. For example:
#Const DEBUG = TruePublic Sub SomeMethod( )#If DEBUG ThenConsole.WriteLine("Entering SomeMethod( )")#End If' ...#If DEBUG ThenConsole.WriteLine("Exiting SomeMethod( )")#End IfEnd Sub
The #Const directive defines a symbolic constant
for the compiler. This constant is later referenced in the
#If directives. If the constant evaluates to
True, the statements within the
#If block are compiled into the application. If
the constant evaluates to False, the statements
within the #If block are ignored.
The scope of constants defined by the #Const
directive is the source file in which the directive appears. However,
if the constant is referenced prior to the definition, its value is
Nothing. It is therefore best to define constants
near the top of the file. Alternatively, compiler constants can be
defined on the command line or within the Visual Studio .NET IDE. If
you’re compiling from the command line, use the
/define compiler switch, like this:
vbc MySource.vb /define:DEBUG=True
You can set multiple constants within a single
/define switch by separating the
symbol
=
value
pairs with commas, like this:
vbc MySource.vb ...