C# LanguageConstructeurs et finaliseurs

Introduction

Les constructeurs sont des méthodes d'une classe appelées lorsqu'une instance de cette classe est créée. Leur principale responsabilité est de laisser le nouvel objet dans un état utile et cohérent.

Les destructeurs / finaliseurs sont des méthodes d'une classe appelées lorsqu'une instance de celle-ci est détruite. En C #, ils sont rarement explicitement écrits / utilisés.

Remarques

C # n'a pas réellement de destructeurs, mais plutôt de finaliseurs qui utilisent la syntaxe de destructeur de style C ++. La spécification d'un destructeur remplace la méthode Object.Finalize() qui ne peut pas être appelée directement.

Contrairement à d'autres langages ayant une syntaxe similaire, ces méthodes ne sont pas appelées lorsque des objets sont hors de portée, mais sont appelées lorsque le ramasse-miettes s'exécute, ce qui se produit sous certaines conditions . En tant que tels, ils ne sont pas garantis pour fonctionner dans un ordre particulier.

Les finaliseurs doivent être responsables du nettoyage des ressources non gérées uniquement (pointeurs acquis via la classe Marshal, reçus via p / Invoke (appels système) ou pointeurs bruts utilisés dans des blocs non sécurisés). Pour nettoyer les ressources gérées, consultez IDisposable, le modèle Dispose et l'instruction using .

(Autres lectures: Quand devrais-je créer un destructeur? )

Constructeurs et finaliseurs Exemples Liés