Csharp/CSharp Tutorial/Preprocessing Directives/undef
define OS constant for compilation
#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();
}
}
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
#undef symbol