Object型変数をNothingにしてくれる関数


休日のビール  2006-02-19 02:17:46  No: 130298

皆さん、どうやっているのか、教えてほしいのです。

VB6で開発していて、オブジェクトをNothinにし忘れて、関数を抜けてしまうことって
ありませんか?

恥ずかしながら、私は、ちょこちょこやってしまっています。。。

そこで、関数を抜ける前に、
「関数内で、使っているオブジェクト型の変数をすべて、Nothingにさせるような関数」
をコールしてから、処理を終了するってことができれば、いいなぁ
って思っているのですが、こんなことってできないですよね?

イメージはこんな感じ

Function testA()

  Dim testObject As object

  :
  : 処理をする。
  :

  call IForgetClearObject()  ' ← この関数をコールすると、testA関数内で、使った
                             '    オブジェクトをクリアしてくれる。
                             '    ほかの関数への使いまわしも可能。
  exit function

end function

どうでしょうか?
こんなことってできると思いますか?

また、皆さんが忘れないように、何か工夫をしているようでしたら、
教えていただけないですか?

よろしくです。


いはら  2006-02-19 03:40:11  No: 130299

プロシージャ内で宣言したオブジェクト変数に
プロシージャ内でしか参照しないオブジェクトを
割り当てるのであれば、プロシージャを抜けると
そのオブジェクトを参照するものが何もなくなるので
自動的に開放されると思いますが、違ったでしょうか?

なので、とくに工夫はしていません。

Function testA()
  Dim testObject As Object

  Set testObject = CreateObject("Scripting.FileSystemObject")
  '何らかの処理

  Set testObject = Nothing  '←  あっても無くても別にいいような気がします
End Function


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加