Looking for c# Answers? Try Ask4KnowledgeBase
Looking for c# Keywords? Try Ask4Keywords

C# LanguageКонструкторы и финализаторы


Вступление

Конструкторы - это методы в классе, которые вызывается при создании экземпляра этого класса. Их основная ответственность заключается в том, чтобы оставить новый объект в полезном и согласованном состоянии.

Деструкторы / Финализаторы - это методы в классе, которые вызывается, когда экземпляр этого объекта уничтожается. В C # они редко явно пишутся / используются.

замечания

На C # фактически нет деструкторов, а скорее финализаторы, которые используют синтаксис деструктора стиля C ++. Указание деструктора переопределяет метод Object.Finalize() который нельзя вызвать напрямую.

В отличие от других языков с похожим синтаксисом, эти методы не вызывают, когда объекты выходят из области действия, но вызывается, когда запускается сборщик мусора, который происходит при определенных условиях . Таким образом, они не гарантируются в каком-либо конкретном порядке.

Финализаторы должны нести ответственность за очистку неуправляемых ресурсов только (указатели , полученные с помощью класса Marshal, полученные через р / Invoke (системные вызовы) или сырые указатели , используемые в небезопасных блоках). Чтобы очистить управляемые ресурсы, просмотрите IDisposable, шаблон Dispose и инструкцию using .

(Дальнейшее чтение: Когда я должен создать деструктор? )

Конструкторы и финализаторы Связанные примеры