Différence entre dispose () et finalize ()

Différence clé - éliminer () contre finaliser ()
 

le différence clé entre dispose () et finalize () est que dispose () doit être explicitement appelé par le programmeur, tandis que finalize () est appelé par le ramasse-miettes avant de détruire l'objet..

Dispose () est une méthode pour fermer ou libérer des ressources non gérées, telles que des fichiers ou des flux détenus par un objet. La finalisation est une méthode pour effectuer des opérations de nettoyage sur les ressources non gérées détenues par l'objet actuel avant sa destruction..

CONTENU

1. Vue d'ensemble et différence clé
2. Qu'est-ce que dispose ()
3. Qu'est-ce que finalize ()
4. Similarités entre dispose () et finalize ()
5. Comparaison côte à côte - dispose () vs finalize () sous forme tabulaire
6. Résumé

Qu'est-ce que dispose ()?

L’un des avantages les plus importants du .NET Framework est qu’il offre un nettoyage automatique des déchets. Il libère automatiquement la mémoire des objets non utilisés. Dans les langages de programmation tels que C et C ++, le programmeur doit gérer lui-même la gestion de la mémoire. Mais dans des langages tels que C # qui reposent sur .NET Framework, le ramasse-miettes est fourni. Cela aide à gérer la mémoire. Il ne peut pas être utilisé pour libérer les ressources de mémoire non gérées. La méthode dispose () peut être utilisée pour accomplir cette tâche.

La méthode dispose () peut être utilisée pour libérer des ressources telles que des connexions à une base de données, des gestionnaires de fichiers, etc. Cette méthode n'est pas appelée automatiquement. Par conséquent, le programmeur doit implémenter cette méthode. Dès que cette méthode est appelée, la mémoire de la ressource non gérée particulière est libérée. Cette méthode est déclarée dans l'interface IDisposable.

Qu'est-ce que finalize ()?

La méthode finalize n'est appelée par le garbage collector que lorsque la référence à un objet n'est plus utilisée. Cette méthode s'appelle juste avant de détruire l'objet. Cette méthode est implémentée à l'aide du destructeur. La méthode finalize est définie dans la classe java.lang.object. Cette méthode est déclarée protégée. Il n'est pas déclaré public pour éviter l'accès par les autres classes. Globalement, la méthode de finalisation peut minimiser les performances du programme car elle ne libère pas la mémoire instantanément.

Quelle est la similitude entre dispose () et finalize ()?

  • Dispose à la fois et finalize peut être utilisé pour libérer la mémoire allouée à une ressource non gérée.

Quelle est la difference entre dispose () et finalize ()?

dispose () vs finalize ()

Dispose () est une méthode pour fermer ou libérer des ressources non gérées, telles que des fichiers, des flux détenus par un objet.. La finalisation est une méthode pour effectuer des opérations de nettoyage sur les ressources non gérées détenues par l'objet actuel avant sa destruction..
 Objectif
La méthode dispose est utilisée pour libérer les ressources non gérées quand elle est invoquée. La méthode finalize est utilisée pour libérer les ressources non gérées avant la destruction de l'objet..
Interface ou classe définie
Le dispose () est défini dans l'interface IDisposable interface. Finalize () est défini dans la classe java.lang.object.
 Méthode Invocation
La méthode de disposition est appelée par le programmeur. La méthode finalize est appelée par le ramasse-miettes..
Spécificateur d'accès
La méthode de disposition est publique. La méthode finalize est protégée.
La vitesse
La méthode dispose est invoquée instantanément. La méthode finalize est appelée lentement.
Performance
L'élimination ne minimisera pas la performance du programme. La méthode de finalisation peut minimiser les performances du programme.

Résumé - éliminer () contre finaliser ()

Cet article traite de la différence entre les méthodes d'élimination et de finalisation en C #. La différence entre dispose () et finalize () est que, dispos () doit être explicitement appelé par le programmeur, tandis que finalize () est appelé par le garbage collector avant la destruction de l'objet..

Référence:

1.Implémenter Finalize et Dispose pour nettoyer les ressources non gérées. Disponible ici  
2.Sharma, Nitya. «Back To Basics - Dispose Vs Finalize.» C # Corner. Disponible ici  

Courtoisie d'image:

1.'Csharp Logo'By Andres15alvarez - Travail personnel, (CC BY-SA 4.0) via Wikimedia Commons