The C# language specification defines the empty-statement grammar production, which allows me to do something like this:
static void Main(string[] a
It allows have blocks of code IFDEF'd out, and the surrounding code still build. eg
if(true){ #if(DEBUG) System.Console.WriteLine("Debug comment"); #endif }
which could be written as an empty block, if you dislike brackets:
if(true) #if(DEBUG) System.Console.WriteLine("Debug comment") #endif ;