By the way, the dangling Else is a false problem in that example. Both C# and VB have a construct to bound the block. In C# it's the }, whereas in VB it's the End If. Had either one of those been used in the example, it would have been clear to which If the Else belonged.

