CS1032 de erro do compilador

Mensagem de erro

Não é possível definir/remover símbolos de pré-processador após o primeiro token no arquivo

The #define and #undef preprocessor directives must be used at the beginning of a program, before any other keywords, such as those used in the namespace declaration.

O exemplo a seguir gera CS1032:

// CS1032.cs
namespace x
{
   public class clx
   {
      #define a   // CS1032, put before namespace
      public static void Main()
      {
      }
   }
}