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

わんくま同盟

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

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

■96716 / 1階層)  Disposeメソッドを付けないクラスの開放について
□投稿者/ WebSurfer (2182回)-(2021/01/14(Thu) 14:47:28)
No96711 (ルーキー さん) に返信

ちなみに、アンマネージドリソースを保持しているクラスで Dispose する必要がある場合は、
Dispose パターンというのがあるのでそれに従って実装します。

それについては、Microsoft のドキュメント「Dispose メソッドの実装」などに書かれていま
す。

Dispose メソッドの実装
https://docs.microsoft.com/ja-jp/dotnet/standard/garbage-collection/implementing-dispose

・・・が、正直、自分は読んでもよく分かりませんでした。

Visual Studio には Dispose パターンに準拠したコードの骨組みを自動生成する機能が追加
されています。(VS2015 以降のはず) それをベースに自分で実装してみると理解が進むと
思いますので試してみてください。詳しくは以下の記事を見てください。

Dispose パターン
http://surferonwww.info/BlogEngine/post/2019/05/31/dispose-pattern.aspx

上の記事には以下の 2 つの例を書きました。

(1) Dispose パターンを実装した .NET のクラスのインスタンスを保持している。

(2) クラス内でアンマネージドリソースを取得し、それを保持している。

他に以下のケースもあると思いますが、

(3) Dispose パターンを実装済のクラスを継承したカスタムクラス。

それについては以下の記事に書きましたので、興味があれば読んでください。

Dispose パターン (その 2)
http://surferonwww.info/BlogEngine/post/2020/06/20/dispose-pattern-2nd.aspx

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Disposeメソッドを付けないクラスの開放について /ルーキー →Re[2]: Disposeメソッドを付けないクラスの開放について /ルーキー
 
上記関連ツリー

Disposeメソッドを付けないクラスの開放について / ルーキー (21/01/14(Thu) 13:29) #96711
Re[1]: Disposeメソッドを付けないクラスの開放について / WebSurfer (21/01/14(Thu) 13:55) #96714
Re[1]: Disposeメソッドを付けないクラスの開放について / 774RR (21/01/14(Thu) 13:51) #96713
Disposeメソッドを付けないクラスの開放について / WebSurfer (21/01/14(Thu) 14:47) #96716 ←Now
  └ Re[2]: Disposeメソッドを付けないクラスの開放について / ルーキー (21/01/14(Thu) 15:01) #96717 解決済み
    └ Re[3]: Disposeメソッドを付けないクラスの開放について / 774RR (21/01/14(Thu) 16:51) #96718 解決済み
      └ Re[4]: Disposeメソッドを付けないクラスの開放について / ルーキー (21/01/14(Thu) 17:50) #96719 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信