2009-07-29 5 views

答えて

5

これはかなり大きなトピックです。リチャードの本CLR via C#をお勧めしますか?それはあなたが言及したすべての問題についての詳細に入ります。

非常に簡単な翻訳:閉じる使い捨てタイプで

  • は、多くの場合、廃棄と同じです。
  • Disposeは、ガベージコレクションで処理されないリソースを確定的にクリーンアップするために使用されます。
  • ファイナライザ(またはC#言語仕様でデストラクタとして呼び出される)は、ある時点でガベージコレクションコードによって呼び出されたクリーンアップメソッドです。私。 C++のデストラクタとは異なり、これは明確な時点では行われません。
  • GCはガベージコレクションの略で、管理されたヒープ上にあるオブジェクトの.NETの自動クリーンアップを指します。
  • IDisposableは、問題の型が上記のようにDisposeメソッドを実装することを示すインターフェイスです。

詳細については、本を参照してください。 Joe DuffyのThis rather elaborate blog entryもIDisposableとfinalizersの理解に非常に役立ちます。

+0

ブライアン、ありがとうございました。クラスのfinalizeメソッドはいつ実装する必要がありますか? それを実装するには本当に必要ですか? – odiseh

+1

私は、その質問のJoe Duffyの優れた治療法へのリンクを使って自分の回答を更新しましたので、それをご覧ください。短い答えは次のとおりです。あなたのクラスがマネージドリソースだけを使用する場合は、ファイナライザは必要ないでしょう。 –

+0

あなたの良いコメントは+1です。 – odiseh

関連する問題