Csharp/CSharp Tutorial/Preprocessing Directives/undef
define OS constant for compilation
<source lang="csharp">#define win2000
- define release
- undef win98
using System; using System.Diagnostics; class MainClass {
[Conditional("DEBUG")] public static void DumpState() { Console.WriteLine("Dump some state..."); } public static void Main() { string platformName; #if winXP //Compiling for Windows XP platformName = "Microsoft Windows XP"; #elif win2000 // Compiling for Windows 2000 platformName = "Microsoft Windows 2000"; #elif winNT // Compiling for Windows NT platformName = "Microsoft Windows NT"; #elif win98 // Compiling for Windows 98 platformName = "Microsoft Windows 98"; #else // Unknown platform specified platformName = "Unknown"; #endif Console.WriteLine(platformName); // Call the conditional DumpState method DumpState(); }
}</source>
Use #define and #undef to control the program logic
- The #undef directive removes a previously defined definition.
- The #undef directive "undefines" a symbol.
The general form for #undef is
<source lang="csharp">#undef symbol</source>