Preprocessor directives must appear as first non-whitespace character on a line
A preprocessor directive was found on a line and was not the first token on the line. A directive must be the first token on the line.
The following sample generates CS1040:
/* Define a symbol, X */ #define X // CS1040 // try the following two lines instead // /* Define a symbol, X */ // #define X public class MyClass { public static void Main() { } }