「コンストラクター」と同様に、C# のデストラクター (「ファイナライザー」とも呼ばれます) もクラス内の特別なメンバー関数であり、主にガベージ コレクターがクラス インスタンスを再利用するときに必要なクリーンアップ操作を実行するために使用されます。
C# のデストラクターには次の特徴があります。
- デストラクターはクラス内でのみ定義でき、構造体内では定義できません。
- クラス内に定義できるデストラクターは 1 つだけです。
- デストラクターは継承またはオーバーロードできません。
- デストラクターには戻り値がありません。
- デストラクターは自動的に呼び出され、手動で呼び出すことはできません。
- デストラクターをアクセス修飾子で装飾したり、パラメーターを含めたりすることはできません。
デストラクターの名前もクラス名と同じですが、以下に示すように、名前の前にチルダ~
を付ける必要があります。
class Car
{
~Car()
{
}
}
[例] 上記のコンストラクターと組み合わせて、クラス内でのコンストラクターとデストラクターの使用法を示します。
using System;
namespace it-kiso.com
{
class Demo
{
static void Main(string[] args)
{
Student stu1 = new Student();
Student stu2 = new Student();
}
}
public class Student
{
public Student(){
Console.WriteLine("Classのコンストラクター");
}
~Student(){
Console.WriteLine("Classのデストラクター");
}
}
}
注: デストラクターは外部に公開できないため、デストラクターにアクセス修飾子を適用することはできません。
「 C# デストラクター」についてわかりやすく解説!絶対に観るべきベスト2動画
【プログラミング講座(C#)】第30回 コンストラクタとデストラクタについて【独り言】