I’m missing C++ preprocessor power

I had to write some code to demonstrate different options in our new rendering engine; the options were “high payload is placed closer to baseline”, “high payload is placed farther away from the baseline”, “payload size is ignored” and “left to right” or “right to left” processing.

Quick and easy, I wrote some statements wrapped by #if directives.
And then I’ve placed two #define statements right above these sections (like I would do in C++).
R# quickly smelled something, but I’ve understood only when trying to compile: unlike C++, C# requires all #define statements to appear at the very top of the file.