J'apprends le C#. D'après ce que je sais, vous devez configurer les choses correctement pour que le garbage collector efface tout comme il se doit. Je suis à la recherche de la sagesse acquise au cours des années de votre part, l'intelligent. Je viens d'un arrière-plan C++ et je suis très habitué aux odeurs de code et aux modèles de développement. Je veux apprendre à quoi ressemblent les odeurs de code en C#. Donne-moi un conseil!Quelles sont les façons de résoudre les fuites de mémoire en C#
Quels sont les meilleurs moyens de supprimer les éléments?
Comment pouvez-vous comprendre quand vous avez des "fuites de mémoire"?
Edit: Je suis en train de développer un coup de poing liste de « choses à faire toujours la gestion de la mémoire »
Merci, beaucoup.
Ce "ou" est source de confusion - même des objets IDisposable sont déchets collectés. Le GC ne sait rien sur IDisposable. Souvent, Dispose() appelle SuppressFinalize, mais cela n'a aucun rapport. –
Bon point. Donc la classe contenant est ramassée, mais ses ressources sont explicitement désallouées. Je n'ai jamais pensé à ça. –
"Il est prudent de supposer que les types gérés sont toujours collectés." Cette affirmation est si fausse. Rien ne peut être récupéré si l'on peut toujours l'atteindre, le programmeur doit toujours avoir en tête d'annuler ses références racines lorsqu'il n'est plus nécessaire. –