The C# language specification defines the empty-statement grammar production, which allows me to do something like this:
static void Main(string[] a
Here are two uses:
while(DoSomething()) ;
and
void M() { if(someCondition) goto exit; // ... exit: ; }
There are many others. It's a useful device anytime there is nothing to do but a statement is required.