C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 41 を表示中)
■21619 / )  Re[5]: 自作ダイアログについて
□投稿者/ 渋木宏明(ひどり) (812回)-(2008/07/06(Sun) 10:39:39)
渋木宏明(ひどり) さんの Web サイト
> Dispose()しても、myDialogはnullにもはならないんですね。

なりません。

> このような構文は、ダイアログに限らず使っていましたが、Dispose()を繰り返し呼んでしまうとまずいのでしょうか。

対象のクラス次第です。

が、基本的には IDisposable.Dispose() は何度でも正しく(=InvalidOperationException 例外などを発生することなく)呼び出せることが強く期待されます。

.NET の標準クラスライブラリのクラスに関しては「何度でも IDisposable.Dispose() を呼び出しても大丈夫」と考えて問題ないでしょう。

> 可能性のあるときは明示的に、Disposeの後はnullを代入しておかなければいけませんか?

必要ありません。

が、IDisposable.Dispose() 呼び出しを行った後のクラスインスタンが期待通りに動作するかどうかは、そのクラスの設計次第です。

正常動作が望めないものも数多く存在するので、Dispose() 呼び出し済みのインスタンスの使い回しによる不具合を回避するための仕掛けの一つとしては、アリだと思います。

返信 編集キー/


管理者用

- Child Tree -