リソースを解放するためのメカニズムを提供します。インターフェイスを実装するリソースクラスを作成する方法を示しています。Class注釈このインターフェイスの主な用途は、アンマネージリソースを解放することです。ガベージコレクターは、そのオブジェクトが使用されなくなったときに、マネージオブジェクトに割り当てられたメモリを自動的に解放します。ガベージコレクションがいつ発生するかを予測することはできません。ガベージコレクターは、ウィンドウハンドルや開いているファイルやストリームなどのアンマネージリソースに関する情報を持っていません。メソッドを使用して、ガベージコレクターと共にアンマネージリソースを明示的に解放します。オブジェクトのコンシューマーは、オブジェクトが不要になったときにこのメソッドを呼び出すことができます。既存のクラスにIDisposableインターフェイスを追加することは互換性に影響する重大な変更です。型の既存のコンシューマーはDisposeを呼び出すことができないため、型によって保持されているアンマネージリソースが解放されることは確実ではありません。ラップするか(推奨される方法)、コンシューマーがObject.Finalizeを呼び出し忘れた場合にアンマネージリソースを解放するために、Disposeをオーバーライドする必要があります。Disposeメソッドを直接実装することはできません。メソッドの実装」のトピックを参照してください。IDisposableアプリケーションでIDisposableインターフェイスを実装するオブジェクトのみを使用する場合は、オブジェクトの使用が終了したら、そのオブジェクトのIDisposable.Dispose実装を呼び出す必要があります。つの方法のいずれかでこれを行うことができます。ステートメントなどの言語構造を使用する。Basic.IDisposable.Dispose実装の呼び出しをtry/finallyブロックでラップする。block.注意IDisposableを実装する型のドキュメントでは、その事実やDispose実装を呼び出すためのリマインダーが含まれています。ステートメントなどをサポートしている場合、IDisposable.Disposeを自分で明示的に呼び出す代わりに、それらを使用できます。次のコードの例ではこの方法を使用して、ファイルとその中の単語の数に関する情報を保持するWordCountクラスを定義します。ステートメントは、実際には構文的に便利です。トピックを参照してください。ステートメントでそれを使用していない場合を呼び出すことができます、IDisposable.Disposeから実装、finallyのブロックをtry/finallyステートメント。try/finallyブロックします。ステートメントを参照してください。IDisposable型でアンマネージリソースを直接使用する場合にのみ、IDisposableを実装する必要があります。型のコンシューマーがIDisposable.Dispose実装を呼び出してリソースを解放できます。Disposeの呼び出しに失敗したケースを処理するには、SafeHandleから派生したクラスを使用してアンマネージリソースをラップするか、参照型に対してObject.Finalizeメソッドをオーバーライドする必要があります。どちらの場合も、アンマネージリソースの解放、解放、またはリセットなど、アンマネージリソースを使用した後に必要なクリーンアップを実行するには、Disposeメソッドを使用します。番目のDisposeオーバーロードを提供する必要があります。hierarchy破棄可能である必要があるサブクラスを持つ基底クラスは、次のようにIDisposableを実装する必要があります。実装する場合は常に、このパターンを使用する必要があります。メソッドを提供する必要があります。呼び出す必要があり、パフォーマンスのために終了処理を抑制する必要があります。performance.基本型はファイナライザーを含めることはできません。パターンを反映しています。型がObject.Finalizeメソッドをオーバーライドしないことを前提としています。メソッドをオーバーライドする場合、クラスは次のパターンを実装する必要があります。Classサブクラスは破棄可能なパターンを次のように実装する必要があります。実装を呼び出す必要があります。implementation.必要な場合にはファイナライザーを提供します。呼び出す必要があります。Disposeメソッドを含んでいないことに注意してください。基底クラスのDispose(Boolean)メソッドをオーバーライドしているだけです。パターンを反映しています。型がObject.Finalizeメソッドをオーバーライドしないことを前提としています。リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。Methodこのページはお役に立ちましたか?はいいいえ追加のフィードバックはありますか?スキップ送信ありがとうございます。Cookie利用条件サイトのフィードバック商標このページはお役に立ちましたか?はいいいえ追加のフィードバックはありますか?スキップ送信ありがとうございます。Cookie利用条件サイトのフィードバック。