Ответы по Технологии программирования / Деструкторы
.docxСредства языка С# позволяют определить метод, который должен вызываться непосредственно перед тем, как объект будет окончательно разрушен системой сбора мусора. Этот метод называется деструктором, и его можно использовать для обеспечения гарантии "чистоты" ликвидации объекта. Например, вы могли бы использовать деструктор для гарантированного закрытия файла, открытого некоторым объектом.
Формат записи деструктора такой:
~имя_класса() {
// код деструктора
}
Очевидно, что элемент имя_класса здесь означает имя класса. Таким образом, деструктор объявляется подобно конструктору за исключением того, что его имени предшествует символ "тильда" (~).
Чтобы добавить деструктор в класс, достаточно включить его как член. Он вызывается в момент, предшествующий процессу утилизации объекта. В теле деструктора вы указываете действия, которые, по вашему мнению, должны быть выполнены перед разрушением объекта.
using System;
class Destruct {
publicint x;
public Destruct(inti) {
x = i;
}
// Вызывается при утилизации объекта.
~Destruct() {
Console.WriteLine("Деструктуризация " + x) ;
}
// Метод создает объект, который немедленно
// разрушается.
public void generator(inti) {
Destruct o = new Destruct(i);
} }
classDestructDemo {
public static void Main() {
int count;
Destruct ob = new Destruct(0);
for(count=l; count < 100000; count++)
ob.generator(count);
Console.WriteLine("Готово!");
}}