Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

気になる仕様

参考: http://blogs.wankuma.com/episteme/archive/2007/10/30/104808.aspx

(Option strict onで実行)
1:
        Dim btn As Button
        For j As Integer = 0 To 4
            If j = 0 Then btn = New Button
        Next
        Dim b As Button = btn     '<===  警告 1 変数 'btn' は、値が割り当てられる前に使用されています。Null 参照の例外が実行時に発生する可能性があります。 C:\Users\Ognac\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 21 27 WindowsApplication1

変数 btnは初期化されてません。しかしLoop内で必ず設定されます。
しかしコンパイラーは警告扱いします。

2.
        Dim i As Integer = 10
        i = i + +1
        MessageBox.Show(i.ToString)     '=> 11
        i = 10
        i = i + -1
        MessageBox.Show(i.ToString)     '=> 9
        i = 10
        i = i + --1
        MessageBox.Show(i.ToString)     '=> 11

"-"や"+" は単項演算子なので Compile Errorにはならず正常に動作します。

仕様通りの動作なのですが、もう少し気を利かして欲しいなと思うのです。私だけ?

投稿日時 : 2007年10月30日 0:22

Feedback

# re: 気になる仕様 2007/10/30 1:00 片桐

うーん、Dimってただのポインタ宣言、って考えてるから、Dim、だけで使えてるVBが凄いなぁなんて思ってましたですよ。最近のやつは、ポインタ宣言しただけだとあかんやん、ちゃんとメモリ領域アドレス確保せいや!と叱るようになっってある意味、Cっぽくなったんじゃない?と思ってしまう進化乗り遅れの片桐(謎)

# re: 気になる仕様 2007/10/31 0:18 Ognac

一時、「VBはC#と同機能を有するようになる」と期待してたのですが、再び違う路線を引いたようで、今後どうなるんだろう。期待半分/心配半分です。

タイトル
名前
Url
コメント