開発 ファイナライズとは何ですか? -techopediaからの定義

ファイナライズとは何ですか? -techopediaからの定義

目次:

Anonim

定義-Finalizeとはどういう意味ですか?

Finalizeは、アンマネージリソースを解放し、ガベージコレクション(GC)の前にクリーンアップ操作を実行するために必要なコードを含むオブジェクトメソッドです。


finalizeメソッドは、.NETで管理されていないリソースをクリーンアップするために使用されます。 .NETフレームワークは、メモリ管理タスクを暗黙的に実行することでマネージリソースを解放するように設計されていますが、ファイルハンドルやデータベース接続などのアンマネージアプリケーションリソースは明示的に解放する必要があります。

TechopediaによるFinalizeの説明

finalizeはGCによって暗黙的に呼び出されるように設計されていますが、disposeメソッドはリソースを解放するためにユーザーコードによって明示的に呼び出される場合があります。


Finalizeは、従来のC ++デストラクタに似ています。それぞれがオブジェクトリソースを解放する役割を果たします。 C ++デストラクタは、オブジェクトがスコープから出るとすぐに実行されますが、finalizeはGCでのオブジェクトのクリーンアップ中に呼び出されます。 C#では、finalizeを直接呼び出したり、オーバーライドしたりすることはできません。 デストラクタが宣言されている場合は、プログラムのコンパイル時にファイナライズメソッドに変換されます。


ファイナライズ中に、メモリの割り当てまたは仮想メソッドの呼び出しを回避する必要があります。 ファイナライズのスコープは、同じクラスまたはその派生クラス内でのみアクセスされるように保護する必要があります。 Finalizeは他のオブジェクトを参照しないでください。 C#では、基本クラス以外のオブジェクトで直接finalizeを呼び出すことは無効な操作です。 呼び出しスレッドをブロックできる呼び出しがない場合、ファイナライズコードは最小限にする必要があります。 finalizeは専用スレッドによって呼び出されるため、そのコードはスレッドローカルストレージやスレッドアフィニティを必要とする手法を使用しないでください。


確定性の欠如とGCパフォーマンスへの影響のため、管理されていないメモリまたはリソースを解放するためのフォールバックメカニズムとしてfinalizeを使用することが不可欠です。

この定義は、.NETのコンテキストで記述されました
ファイナライズとは何ですか? -techopediaからの定義