Possible Duplicate:
Conditional compilation and framework targets
I have some code that works in .NET 4, but it does not work in .NET 3.5. In .NET 3.5 it requires to use interop calls to Windows.
I would like using a "ifdef" to use a different code path in both cases (eventually I will deprecate the .NET 3.5 code).
Is there a pre-defined directive value to identify when the code is compiled with .NET 4?
Is there a good link with all the predefined directives (DEBUG
, TRACE
, etc.)? The page below only gives the directives, but not the standard predefined values:
C# Preprocessor Directives
Conditional compilation can be useful when compiling code for a debug build or when compiling for a specific configuration. A conditional directive beginning with an #if directive must explicitly be terminated with an #endif directive. #define lets you define a symbol.
The $ELSE statement is used in conjunction with the $IF statement to control conditional compilation. The $END statement is used in conjunction with the $IF statement to control conditional compilation. A $IF statement provides the means whereby selected parts of the source text are not included in the compilation.
The #define directive cannot be used to declare constant values as is typically done in C and C++. Constants in C# are best defined as static members of a class or struct. If you have several such constants, consider creating a separate "Constants" class to hold them.
I think this is what you are looking for:
#if NET40
...
#elif NET35
...
#else NET20
...
#endif
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With