TransWikia.com

В каких случаях надо писать что то в теле деструктора?

Stack Overflow на русском Asked on December 26, 2021

В каких случаях надо писать что то в теле деструктора ? Когда нам самим руками на особождать ресурсы?
Уже пишу год на c# не когда не писал что в деструкторе.

class Person
{
public: 
    Person(string n)
    {
        name = n;
    }
    ~Person()
    {
        Debug.Log( "Destructor called for Person " + name );
    }
private:
    string name;
}; 

One Answer

вот

Большинство объектов, используемых в программах на C#, относятся к управляемым или managed-коду, и легко очищаются сборщиком мусора. Однако вместе с тем встречаются также и такие объекты, которые задействуют неуправляемые объекты (низкоуровневые файловые дескрипторы, сетевые подключения и т.д.). Такие неуправляемые объекты обращаются к API операционной системы через службы PInvoke. Сборщик мусора может справиться с управляемыми объектами, однако он не знает, как удалять неуправляемые объекты. В этом случае разработчик должен сам реализовывать механизмы очистки на уровне программного кода.

Освобождение неуправляемых ресурсов подразумевает реализацию одного из двух механизмов:

  • Создание деструктора
  • Реализация классом интерфейса System.IDisposable

Answered by timur on December 26, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP