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 as
conditionally dependent upon the presence of the
DEBUG symbol. If we remove the
DEBUG symbol, the statement is not compiled.
Preprocessor symbols can be defined within a source file (as we have
done), and they can be passed to the compiler with the
/define: symbol command-line option. All
preprocessor symbols are implicitly true, so the
#define statement in the previous example is
effectively the same as the following:
#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. See Table 4-3 for a list of preprocessor directives and
their actions.
Table 4-3. Preprocessor directives
|
Preprocessor directive |
Action |
|---|---|
|
|
Defines |
|
|
Undefines |
|
|
|
|
|
Executes code to subsequent |
|
|
Combines ... |