Visual Basic 2008 の新機能 - ローカル型の推論 -
Mr.Tの場所 :VB.NETでForループで型推論をしたときのワナ
Mr.Tさんが書かれているエントリを見ていて思い出したことがあったので書いておきます。
Option Compare Binary
Option Explicit Off
Option Infer On
Option Strict On
Public Module InferenceProgramming
Sub Main(ByVal arg() As String)
x = arg
End Sub
End Module
さて、変数 x の型は何でしょうか?
ここでポイントとなるのは
Option Explicit Off
です。Option Explicit が Off の場合、暗黙的に宣言された変数を使用することができます。ただし、この暗黙的に宣言された変数に対しては、たとえOption Infer がOn であっても型推論は機能せず、Object型の変数となります。
よって、変数 x の型は Object 型になりますので注意が必要ですね。