How to use #define and #undef to control the program logic

Description

The #undef directive removes a previously defined definition. The #undef directive "undefines" a symbol.

Syntax

The general form for #undef is

#undef symbol

Example

The following code shows how to use #undef.


#define win2000/*from   w w  w  .j ava 2 s  .  c  om*/
#define release
#undef  win98

using System;
using System.Diagnostics;


class MainClass
{
    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);

    }
}

The code above generates the following result.





















Home »
  C# Tutorial »
    Custom Types »




C# Class
C# Struct
C# Interface
C# Inheritance
C# Namespace
C# Object
C# Delegate
C# Lambda
C# Event
C# Enum
C# Attribute
C# Generics
C# Preprocessor