次の方法で共有


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

更新 : 2007 年 11 月

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

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

wxad3cah.alert_note(ja-jp,VS.90).gifメモ :

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

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

参照

概念

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

参照

Finalize

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

その他の技術情報

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