Cannot define/undefine preprocessor symbols after first token in file
The #define and #undef preprocessor directives must be used at the beginning of a program, before any other keywords, such as the namespace declaration.
The following sample generates CS1032:
namespace x { public class clx { #define a // CS1032, put before namespace public static void Main() { } } }