- ベストアンサー
オブジェクトの廃棄
VB6やC++の時はオブジェクトを使い終わったら破棄するのが当然でした。 Objsys=Nothingみたいな代入をよくやっていました。 VB.Netからはあまり意識されなくなっているのでしょうか。 インスタンスを生成してもそのままのことが多いような気がします? 例えば以下のgraphicsのインスタンスなどです。どうなっているのでしょう。 Dim g As Graphics = PictureBox1.CreateGraphics
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
オブジェクト自体は,適当なタイミングでCLRがGC時に破棄してくれます。 ただし,Graphicsのようなオブジェクトは論理的な破棄タイミングを制御したいため,IDisposableインターフェースを実装しています。 このインターフェースを実装しているオブジェクトは,Disposeメソッドを呼び出すことで論理的な破棄が可能になります。 一応,IDisposableを実装する場合はFinalizeメソッドをオーバーライドすることが推奨されるため,GC時に破棄はしてくれますが……。 なお,Disposeを呼び出すコードはUsing文によって強制することが出来ます。 基本的に,Disposeを直に呼び出すのではなく,可能であればUsing文を使うようにすることが推奨されます。 # Using相当のTry - Finallyをきっちり書くのは慣れないと難しいかと。
その他の回答 (2)
- 光栄 社員(@Koeii)
- ベストアンサー率0% (0/6)
回答No.3
- 光栄 社員(@Koeii)
- ベストアンサー率0% (0/6)
回答No.2
お礼
GCという仕組み、確かJAVAにありましたが、こういう使い方してたんですね。 自分で触るまでは実感できなかったです。^^; エラー処理は確かに気を使ったというかgoto文で全部一ヶ所にとばしてました。 disposeは実装した方がいいみたいですね。 色々と参考になりました。