wataradio回答ポイント 70ptウォッチ

C#でマネージドリソースと、アンマネージドリソースの見分け方を教えてください。


C#ではIDisposableインタフェースの実装パターンとして、以下のようなものが
提示されていますが、"アン"マネージドリソースとして解放すべきものがなんなのかよくわかりません。

StreamReaderだとかは、マネージドリソースなのでif(disposing)の中で解放するんですよね?
"アン"マネージドリソースって具体的にどんなものがあるのですか?
また何かマネージドリソースと区別できる目印がありますか?

class A : IDisposable
{
private bool isDisposed = false;

~A()
{
this.Dispose(false);
}

public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}

public Dispose(bool disposing)
{
if (!this.isDisposed)
{
if (disposing)
{
// マネージドリソースの解放
// 例えば、StreamReader、SQLiteConnection
}
// アンマネージドリソースの解放
// ここで解放すべきアンマネージドリソースって具体的に何?

this.isDisposed = true;
}
}
}

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2010-01-28 22:33:27
終了日時
2010-02-04 22:35:02
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

C#561GC49StreamReader17インタフェース90リソース255Class541

人気の質問

メニュー

PC版