Freigeben über


Verwenden der Destruktorsyntax in C# und Managed Extensions for C++

Sie können die Object.Finalize-Methode nicht mit der Programmiersprache C# oder Managed Extensions for C++ aufrufen oder überschreiben. C# und die Managed Extensions for C++ stellen Destruktoren als Mechanismus für das Verfassen von Finalisierungscode bereit. Verwenden Sie für Bereinigungsoperationen die Destruktorsyntax in C# und den Managed Extensions for C++. Diese Syntax eignet sich gut, da sie die Finalize-Methode für die Basisklasse eines Objekts implizit aufruft. Damit wird sichergestellt, dass Finalize für alle Ebenen von Destruktoren aufgerufen wird, aus denen sich die aktuelle Klasse ableitet.

Das folgende Codebeispiel wurde für einen Destruktor verfasst.

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

Dieser Code wird folgendermaßen implizit übersetzt.

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

Hinweis   Trotz der scheinbaren Ähnlichkeit haben die Destruktoren in C# und den verwalteten Erweiterungen nicht die gleiche Semantik wie Destruktoren in nicht verwaltetem C++. Verwalteter Code unterstützt keine Semantik für Destruktoren, die der von C++ gleicht.

Siehe auch

Bereinigen von nicht verwalteten Ressourcen | Überschreiben der Finalize-Methode | Object.Finalize-Methode | C#-Sprachreferenz 1.7.9 Destruktoren