index

2003年 3月
▽ 月 火 水 木 金 土 日
▷           1 2
▷ 3 4 5 6 7 8 9
▷ 10 11 12 13 14 15 16
▷ 17 18 19 20 21 22 23
▷ 24 25 26 27 28 29 30
▷ 31            
2003年 4月
▽ 月 火 水 木 金 土 日
▷   1 2 3 4 5 6
▷ 7 8 9 10 11 12 13
▷ 14 15 16 17 18 19 20
▷ 21 22 23 24 25 26 27
▷ 28 29 30        
2003年 5月
▽ 月 火 水 木 金 土 日
▷       1 2 3 4
▷ 5 6 7 8 9 10 11
▷ 12 13 14 15 16 17 18
▷ 19 20 21 22 23 24 25
▷ 26 27 28 29 30 31  

アレ

  ▽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 が代入されちゃうのだー.

だぁぁぁぁ.何だよこの動作わ!?  こんな動作を望む奴がどこかにいるってのか?  それとも手抜き仕様でこうなってんのか?

index