確かにVB.NETの落とし穴の一つではある。

Dim x as Integer
は
Dim x as Integer = 0
といつでも等価だと思ってるとはまるよな。

C#みたいに初期化されてないローカル変数は触れないようにしておいてくれれば
よかったんだけど。