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..
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é
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.
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.
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. |
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..
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
1.'Csharp Logo'By Andres15alvarez - Travail personnel, (CC BY-SA 4.0) via Wikimedia Commons