Preprocessor Directives
Preprocessor directives supply the compiler with additional information about regions of code. The most common preprocessor directives are the conditional directives, which provide a way to include or exclude regions of code from compilation. For example:
#define DEBUG class MyClass { int x; void Foo( ) { # if DEBUG Console.WriteLine("Testing: x = {0}", x); # endif ... }
In this class, the statement in Foo
is compiled
conditionally, dependent upon the presence of the user-selected
DEBUG
symbol. If you remove the
DEBUG
symbol, the statement isn’t compiled.
Preprocessor symbols can be defined within a source file as just
shown, and they can be passed to the compiler with the
/define
:
symbol
command-line option. All preprocessor symbols are implicitly true, so
the previous #define
statement is effectively
identical to:
#define DEBUG = true
The #error
and #warning
symbols
prevent accidental misuse of conditional directives by making the
compiler generate a warning or error given an undesirable set of
compilation symbols.
Preprocessor Directives
The C# language supports the preprocessor directives shown in Table 2.4.
Table 2-4. Preprocessor Directives
Preprocessor Directive |
Action |
|
Defines |
|
Undefines |
|
|
|
Executes code to subsequent |
|
Combines |
Get C# Essentials 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.