Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

Substitution de la méthode Finalize

Une méthode Finalize joue un rôle de protection vis-à-vis du nettoyage des ressources au cas où votre méthode Dispose ne serait pas appelée. Vous ne devez implémenter une méthode Finalize que pour nettoyer des ressources non managées. Vous ne devez pas implémenter de méthode Finalize pour des objets managés, car le garbage collector nettoie automatiquement les ressources managées. Par défaut, la méthode Object.Finalize n'effectue aucune opération. Pour que le garbage collector effectue des opérations de nettoyage sur votre objet avant qu'il ne récupère la mémoire de l'objet, vous devez substituer cette méthode dans votre classe.

Remarque Remarque

Vous ne pouvez pas remplacer la méthode Finalize dans le langage de programmation C# ou C++. En langage C#, utilisez la syntaxe du destructeur pour implémenter la méthode Finalize. Dans la version 2.0 de .NET Framework, C++ utilise sa propre syntaxe pour implémenter la méthode Finalize, comme décrit dans Comment : Classes et structures d'instancié. Dans les versions antérieures, C++ utilisait la syntaxe du destructeur pour la méthode Finalize, comme le fait C#.

La portée de la méthode Object.Finalize est protégée. Vous devez conserver cette portée limitée lorsque vous substituez la méthode dans votre classe. En maintenant une méthode Finalize protégée, vous empêchez les utilisateurs de votre application d'appeler directement la méthode Finalize d'un objet.

La méthode Finalize d'un objet doit libérer toutes les ressources qui sont détenues par l'objet. Elle doit également appeler la méthode Finalize de la classe de base de l'objet. La méthode Finalize d'un objet ne doit pas appeler de méthode sur d'autres objets que ceux de sa classe de base. En effet, les autres objets en cours d'appel pourraient être collectés au même moment que l'objet appelant, comme dans le cas d'un arrêt du Common Language Runtime.

Si vous permettez à des exceptions d'éviter la méthode Finalize, le système part du principe que la méthode est retournée et continue à appeler les méthodes Finalize d'autres objets.

Ajouts de la communauté

Afficher:
© 2014 Microsoft