Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


#undef lets you undefine a symbol, such that, by using the symbol as the expression in a #if directive, the expression will evaluate to false.

#undef symbol


The name of the symbol you want to undefine.


A symbol can be defined either with the #define directive or the /define compiler option. The #undef directive must appear in the file before you use any statements that are not also directives.


// preprocessor_undef.cs
// compile with: /d:DEBUG
#undef DEBUG
using System;
public class MyClass 
   public static void Main() 
      #if DEBUG
         Console.WriteLine("DEBUG is defined");
         Console.WriteLine("DEBUG is not defined");


DEBUG is not defined

See Also

C# Preprocessor Directives

© 2015 Microsoft