C# および C++ のデストラクター構文

C# プログラミング言語または C++ プログラミング言語からは、Object.Finalize メソッドを呼び出したり、オーバーライドしたりすることはできません。 C# では、デストラクターを使用して終了コードを記述します。詳細については、「デストラクター (C# プログラミング ガイド)」を参照してください。

C++ では、デストラクター構文は Dispose メソッドを実装する目的で使用されます。 C++ には、Finalize メソッドを実装するための独自の構文が用意されています。詳細については、「Destructors and Finalizers in Visual C++」を参照してください。

メモメモ

.NET Framework Version 2.0 より前のバージョンでは、C++ でも C# と同じように Finalize メソッドを実装するのにデストラクター構文を使用しました。Dispose メソッドを実装するための特別な構文はありませんでした。以前の構文を使用する C++ コードをコンパイルする場合は、/clr:oldSyntax コンパイラ オプションを使用します。

外観は似ていますが、C# デストラクターと C++ デストラクターには、アンマネージ C++ デストラクターと同じセマンティクスはありません。 マネージ コードでは、C++ のデストラクターと類似のセマンティクスは一切サポートされていません。

参照

参照

Finalize

/clr (共通言語ランタイムのコンパイル)

概念

Finalize メソッドのオーバーライド

その他の技術情報

アンマネージ リソースのクリーンアップ