C# の デストラクタの説明
コンストラクターとは逆に、インスタンスが破棄されるときに呼び出されるのがデストラクターです。 デストラクターは以下のように、クラス名の前に ~ を付けた名前のメソッドを書くことで定義できます。
class myClass
{
// デストラクタ
~myClass()
{
Console.WriteLine("destructor");
}
}
NET Framework では、インスタンスの寿命は .NET Framework 自体が管理していて、 いつインスタンスの破棄が行われるのかは分かりません。
ガベージ・コレクション
ガベージコレクションは、不要になったメモリ領域を自動的に解放する機能です。NET Framework つまり C#では このガベージコレクションが機能するので基本的に メモリの解法を意識する必要がありません。
クラスも C++ などでは インスタンス化して 使用後 使わなくなったら プログラマーが 明示的に破棄する必要があります。 それを忘れると 使われないデータが いつまもで メモリに 残ることになります。
このメモリー管理のバグを防ぐために C# では ガベージコレクション が実装され、使われなくなった メモリは 自動的に破棄されます。 ただし、破棄のタイミングはシステム任せになります。 そして、破棄時に実行される デストラクタ も いつ 実行されるかは 同じくシステム任せになります。
コメント