Dim months(11) As String 'an array with upper bound 11 has 12 elements
It feels weird, but as long as I kept telling myself the number represented the upper bound, and not the length of the array, everything seemed OK.
Then one day I needed an array of 0 elements.
Dim foo(-1) As String 'an array of 0 elements is declared with 0 – 1 = -1.
I can’t get this statement out of my head. The illusion is broken. I now think of the number not as the upper bound, but as the length of the array minus 1.
Suddenly, writing array code in VB requires more thought and attention to detail with all of these subtractions going on.