русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Деструктор


Дата додавання: 2015-01-08; переглядів: 919.


 

У С# існує спеціальний вид методу, який називається деструктором. Він викликається складальником сміття безпосередньо перед видаленням об'єкту з пам'яті. У деструкторі описуються дії, що гарантують коректність подальшого видалення об'єкту, наприклад, перевіряється, чи всі ресурси, використовувані об'єктом, звільнені (файли закриті, видалене з'єднання розірване і т. п.).

Синтаксис деструктору:

 

[атрибути] [extern] ~ ім'я_класу( )

тіло

Як видно з визначення, деструктор не має параметрів, не повертає значення і не вимагає вказівки специфікаторів доступу. Його ім'я збігається з ім'ям класу і перед ним ставиться тильда (~), виконує зворотні по відношенню до конструктора дії. Тілом деструктору є блок або просто крапка з комою, якщо деструктор визначений як зовнішній (extern).

Складальник сміття видаляє об'єкти, на які немає посилань. Він працює відповідно до своєї внутрішньої стратегії в невідомі для програміста моменти часу. Оскільки деструктор викликається складальником сміття, неможливо гарантувати, що деструктор буде обов'язково викликаний в процесі роботи програми. Отже, його краще використовувати тільки для гарантії звільнення ресурсів, а “штатне” звільнення виконувати у іншому місці програми.

Застосування деструкторів уповільнює процес збірки сміття.

 


<== попередня лекція | наступна лекція ==>
Операції перетворення типу | Рекомендації по програмуванню


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн