▽20030420a
#日記
一日中 VB をいぢり倒しー.
えーっとつまりさぁ,こういうコードを書いてみるわけ.
Sub hoge() Dim a as New classHoge; Set a = Nothing If a Is Nothing Then Debug.Print "a is nothing." End If End Sub
a
に Nothing
を代入した後に Is Nothing
で聞いてるんだけど,
これ,最初の Dim
の New
宣言がポイントで,
これの動作はどうも「変数 a
が使用される時に中身が空なら新クラスを代入しとく」
というもので,ここに「最初に」という条件が付かないのが問題点だ.
つまりいつでも空でさえあれば勝手にクラスを代入するから,
Set a = Nothing
で空にしても,If a Is Nothing Then
の判断文で,
新たに a
に New classHoge
が代入されちゃうのだー.
だぁぁぁぁ.何だよこの動作わ!? こんな動作を望む奴がどこかにいるってのか? それとも手抜き仕様でこうなってんのか?