- - PR -
クラスで使用するオブジェクトのDispose の実行タイミング
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-13 20:55
今更な質問で申し訳ないのですが・・・
自作したクラス内部で、Dispose を実行するクラスからオブジェクトを作成した際 に、どのように Dispose() を実行すれば良いのかを教えて下さい。
System.Windows.Form から派生したクラスでは、System.Windows.Form の Dispose() をオーバーライドして、components を Dispose しているみたいですが、上記のよう なクラスの場合、どのように「大食い」を Dispose すれば良いのでしょうか? | ||||
|
投稿日時: 2006-05-13 21:31
そりゃ、食事クラスが大食いインスタンスを必要としなくなったときでしょう。
もしいつ必要としなくなるのか判断できないのなら、大食いクラスのファイナライザに任せるしかないでしょう。つまり、放置ですね。 食事クラスを IDisposable にして Dispose() で大食いの Dispose() を呼び出すようにすれば、食事クラスの利用者がオブジェクトの無効を判断してくれるかも知れません。もちろん、その食事クラスの利用者が Dispose を呼び出さなかったら、大食いオブジェクトはファイナライザで自分のアンマネージドリソースを片づけるでしょう。 | ||||
|
投稿日時: 2006-05-13 22:56
僕は何か勘違いしていたみたいです(_*_;) てっきり、自分が開放される時点でイベントなりが発生して、そのタイミングで開放 するものだとばかり思っていました。 大食いオブジェクトは必要だから Dispose メソッドを実装しているわけで、これを 使用している食事クラスも必要だから Dispose メソッドを実装すればよいと言うこ とですね。確かに言われてみれば、その通りでした。 Hongliangさんありがとうございました。 |
1