Option Infer ってなんだろう

VB9 で新しく追加されたオプションに Infer があります。
Infer を辞書で調べると "推論" とか "推察" というがあるそうです。
つまり Option Infer ではコンパイラによる 型の推論 の有無を制御します。
デフォルトでは On になっているのでたとえ Option Strict On でも次のコードはエラーなく実行されますが、 Infer を Off にすると型の宣言がないので コンパイルエラーになります。


Option Strict On
Option Infer On

Private Sub Demo1
    Dim name = "karua"

    Dim nameList = new List(Of String)
    nameList.Add("Fujiwo")
    nameList.Add("om")
    nameList.Add("Moo")
    nameList.Add("karua")

    Dim xml = <xml><nameList>
                <name>Fujiwo</name>
                <name>om</name>
                <name>Moo</name>
                <name>karua</name>
              </nameList></xml>
End Sub

たとえ Option Infer が On でも次のコードはコンパイルエラーになります。

Option Strict On
Option Infer On

Private Sub Demo2
    ' List(Of String) で型推論されたオブジェクトには
    ' List(Of Integer) を代入できない
    Dim nameList = new List(Of String)
    nameList = new List(Of Integer)

    ' 型の推論ができない
    Dim obj
End Sub


型定義が無いのはまだ気持ち悪い感じもするけれど、なれるのかなぁ

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック