皆さん、どうやっているのか、教えてほしいのです。
VB6で開発していて、オブジェクトをNothinにし忘れて、関数を抜けてしまうことって
ありませんか?
恥ずかしながら、私は、ちょこちょこやってしまっています。。。
そこで、関数を抜ける前に、
「関数内で、使っているオブジェクト型の変数をすべて、Nothingにさせるような関数」
をコールしてから、処理を終了するってことができれば、いいなぁ
って思っているのですが、こんなことってできないですよね?
イメージはこんな感じ
Function testA()
Dim testObject As object
:
: 処理をする。
:
call IForgetClearObject() ' ← この関数をコールすると、testA関数内で、使った
' オブジェクトをクリアしてくれる。
' ほかの関数への使いまわしも可能。
exit function
end function
どうでしょうか?
こんなことってできると思いますか?
また、皆さんが忘れないように、何か工夫をしているようでしたら、
教えていただけないですか?
よろしくです。
プロシージャ内で宣言したオブジェクト変数に
プロシージャ内でしか参照しないオブジェクトを
割り当てるのであれば、プロシージャを抜けると
そのオブジェクトを参照するものが何もなくなるので
自動的に開放されると思いますが、違ったでしょうか?
なので、とくに工夫はしていません。
Function testA()
Dim testObject As Object
Set testObject = CreateObject("Scripting.FileSystemObject")
'何らかの処理
Set testObject = Nothing '← あっても無くても別にいいような気がします
End Function
ツイート | ![]() |