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 = True

Public Sub SomeMethod(  )

#If DEBUG Then
   Console.WriteLine("Entering SomeMethod(  )")
#End If

   ' ...

#If DEBUG Then
   Console.WriteLine("Exiting SomeMethod(  )")
#End If
End 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 ...

Get Programming Visual Basic .NET now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.