Например, деструктор может быть использован для гарантированного освобождения системного ресурса, задействованного освобождаемым объектом. Деструкторы — весьма специфические средства, применяемые только в редких, особых случаях. И, как правило, они не нужны.
Ниже приведена общая форма деструктора:
~имя_класса()
{
// код деструктора
}
где имя_класса означает имя конкретного класса. Следовательно, деструктор объявляется аналогично конструктору.
// Продемотрировать применение деструктора.
using System;
class Destruct
{
public int x;
public Destruct(int i)
{
x = i;
}
//Вызывается при утилизации обьекта.
~Destruct()
{
Console.WriteLine("Уничтожить " + x);
}
//Создать обьект е тет же уничтожить его.
public void Generator(int i)
{
Destruct o = new Destruct(i);
}
}
class DestructDemo
{
static void Main()
{
int count;
Destruct ob = new Destruct(0);
/* А теперь создать большое число объектов. В какой-то момент произойдет "сборка мусора".
Примечание: для того чтобы активизировать "сборку мусора", возможно, придется увеличить
число создаваемых объектов. */
for (count = 1; count < 100000; count++)
ob.Generator(count);
Console.WriteLine("Готово!");
}
}