- - PR -
インスタンスの開放とは
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-17 09:24
おはようございます。
インスタンスの開放について疑問があります。 環境はVB6です。 まずフォームのインスタンスを立てたとします。 そのたてたフォームインスタンスをLOADし画面が表示されます。 その後フォームをUNLOAD等のアクションをしない状態で、 インスタンスの開放をしてもフォームは残ったままとなります。 例) dim FormTest as form load FromTest set FormTest = nothing インスタンスの開放をしてもフォームが残っているのであれば、 解放後に見えているフォームはいったいなんなのでしょうか? 教えてください! | ||||||||||||
|
投稿日時: 2006-02-17 09:37
これは、VB7 (VB.NET) 以降でも同様です。 VB7 以降の場合は Close メソッドにあたりますが。
これは「参照」を解放しているだけですよね。 Terminate イベントで Form 自体を UnLoad しているわけじゃないですから。 要するにデストラクタは呼ばれてるけど、何もしていないわけです。
宣言した変数のスコープ範囲外ですが、生きているインスタンスです。 スコープを抜ける == 解放 ではない、ということです。 Forms コレクションに「参照」は残っていますけどね! _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-02-17 09:50
レスありがとうございます!
nothingは参照破棄で、インスタンス自体は生きているということなんでしょうか? では、インスタンスを完全破棄することはできないのですか? 完全に破棄されればフォームも消えると言う事なると思うのですが・・ よろしければ詳しく教えて頂けないでしょうか? | ||||||||||||
|
投稿日時: 2006-02-17 09:55
だから、それが Unload ステートメントの役割なんですよね。(^-^;) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-02-17 13:04
開放しないで解放してくださいね。
_________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||||||
|
投稿日時: 2006-02-17 14:58
漢字間違えてましたね。
すいません。 じゃんぬねっとさんありがとうございました!! |
1