ブロック変数の有効期間

告白します。戒めのために書きます。VS2003です。


For x As Integer = 0 To 3
For y As Integer = 0 To 5
Dim v As Integer

v += 1
Console.WriteLine(v)

Next
Next

変数vの出力は常に1になるもんだと昨日まで思ってました。生きててごめんなさい。なぜ5年近くも気が付かなかったんだろう。自分は明示的に初期化するようにしてます。だから今まで気が付かなかったのかも知れませんが、あえて初期化しなくてもvは毎回0が入るもんだと思ってました。・・・逝ってきます。