Object.Finalize メソッドとは? わかりやすく解説

Object.Finalize メソッド

Objectガベージ コレクションにより収集される前に、その Objectリソース解放しその他のクリーンアップ操作実行できるようにします。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説

Finalize保護されているため、このクラスまたは派生クラス使用したときだけアクセスできす。

SuppressFinalize 呼び出しによる終了操作対象であるオブジェクトアクセスできなくなった場合に、このメソッド自動的に呼び出されます。アプリケーション ドメインシャットダウン中に終了処理の対象であるオブジェクトに対して Finalize自動的に呼び出されます。このメソッドは、これらのオブジェクスがアクセス可能な場合でも呼び出されます。オブジェクトが ReRegisterForFinalize などの機構使用して再登録された後、GC.SuppressFinalize呼び出されている場合除きFinalize特定のインスタンスに対して自動的に 1 回だけ呼び出されます。

派生型での Finalize 実装は、その基本型Finalize 実装呼び出す必要があります。この条件満たしている場合にだけ、アプリケーション コードFinalize呼び出すことができます

Finalize 操作に関する制約事項次に示します

次に示す状況では、Finalize メソッド完了しないことや、このメソッドがまったく実行されないことがあります

シャットダウン中にはランタイムオブジェクトFinalize続行しますが、終了できるオブジェクトの数は減少し続けます

Finalize、または Finalizeオーバーライド例外スローし、既定ポリシーオーバーライドするアプリケーションランタイムホストていない場合ランタイムプロセス終了しアクティブな try-finally ブロックファイナライザ実行されません。この動作により、ファイナライザリソース解放または破棄できない場合にも、プロセス整合性保証されます。

実装時の注意 既定では Object.Finalize は何も実行しません。Finalize実行する必要がある場合には、ガベージ コレクションによるメモリ収集時間がかかる傾向にあるため、このクラス必要な場合にだけ派生クラスオーバーライドするようにします。 Objectリソースへの参照保持している場合には、ガベージ コレクション中に Object破棄される前にこれらのリソース解放するため、Finalizeオーバーライドする必要がありますファイル ハンドルデータベース接続などのアンマネージ リソース使用する型は、Finalize実装する必要があります。アンマネージ リソースは、そのリソース使用するマネージ オブジェクト再生時に解放する必要がありますこの方法よりも制御可能で補足的なリソース解放方法については、IDisposable インターフェイストピック参照してくださいFinalize は、ガベージ コレクション中にオブジェクトクリーンアップした後のオブジェクト再生 (オブジェクト再度アクセスできる状態にする操作) を始めあらゆる処理を実行できますオブジェクト再生できるのは 1 回だけです。ガベージ コレクション中に再生されオブジェクトに対して Finalize呼び出すことはできません。

デストラクタは、クリーンアップ操作実行する C#機構です。デストラクタには、基本型デストラクタ自動呼び出しなどの適切な保護機能備わってます。C# コードでは、Object.Finalize呼び出しオーバーライドはできません。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Object.Finalize メソッド」の関連用語

Object.Finalize メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Object.Finalize メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS