Partager via


Utilisation de la syntaxe de destructeur de C# et des extensions managées pour C++

Vous ne pouvez pas appeler ou substituer la méthode Object.Finalize à partir du langage de programmation C# ou du langage de programmation des extensions managées pour C++. C# et les extensions managées fournissent des destructeurs comme mécanisme d'écriture du code de finalisation. Vous devez utiliser la syntaxe de destructeur figurant dans C# et les extensions managées pour effectuer les opérations de nettoyage. Cette syntaxe est pratique, car elle appelle implicitement la méthode Finalize de la classe de base d'un objet. De cette manière, Finalize est appelé pour tous les niveaux de destructeurs dont la classe en cours est dérivée.

L'exemple de code suivant est écrit pour un destructeur.

~MyClass()
{
   // Perform some cleanup operations here.
}

Ce code se traduit implicitement de la façon suivante.

protected override void Finalize()
{
   try
   {
      // Perform some cleanup operations here.
   }
   finally
   {
      base.Finalize();
   }
}

Remarque   Bien qu'ils semblent identiques, les destructeurs C# et les destructeurs des extensions managées ne possèdent pas la même sémantique que les destructeurs C++ non managés. Le code managé ne prend en charge aucun élément similaire à la sémantique du destructeur C++.

Voir aussi

Nettoyage de ressources non managées | Substitution de la méthode Finalize | Object.Finalize, méthode | 1.7.9 Destructeurs