56 votes

Quand dois-je créer un destructeur ?

Par exemple :

public class Person
{
    public Person()
    {
    }

    ~Person()
    {
    }
}

Quand dois-je créer manuellement un destructeur ? Quand avez-vous eu besoin de créer un destructeur ?

2voto

Vlad Bezden Points 5024

Lorsque vous avez des ressources non gérées et que vous devez vous assurer qu'elles seront nettoyées lorsque votre objet disparaîtra. Un bon exemple serait les objets COM ou les gestionnaires de fichiers.

2voto

Neil.Allen Points 173

J'ai utilisé un destructeur (à des fins de débogage uniquement) pour vérifier si un objet était purgé de la mémoire dans le cadre d'une application WPF. Je n'étais pas sûr que le garbage collection purgeait vraiment l'objet de la mémoire, et c'était un bon moyen de le vérifier.

0voto

SpaceghostAli Points 3732

Les destructeurs fournissent un moyen implicite de libérer les ressources non gérées encapsulées dans votre classe, ils sont appelés lorsque la GC s'en occupe et ils appellent implicitement la méthode Finalize de la classe de base. Si vous utilisez beaucoup de ressources non gérées, il est préférable de fournir un moyen explicite de libérer ces ressources via l'interface IDisposable. Voir le guide de programmation C# : http://msdn.microsoft.com/en-us/library/66x5fx1b.aspx

0voto

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X