クラスのデストラクタと Finalize メソッドの違いは何ですか?
私は最近、Visual Studio 2008 がデストラクタを Finalize メソッドと同義と見なしていることを発見しました。つまり、Visual Studio ではクラス内で両方のメソッドを同時に定義することはできません。
たとえば、次のコード フラグメント:
class TestFinalize
{
~TestFinalize()
{
Finalize();
}
public bool Finalize()
{
return true;
}
}
デストラクタで Finalize を呼び出すと、次のエラーが発生します。
次のメソッドまたはプロパティ間の呼び出しがあいまいです: 'TestFinalize.~TestFinalize()' と 'TestFinalize.Finalize()'
また、Finalize の呼び出しがコメント化されている場合、次のエラーが発生します。
タイプ 'ManagementConcepts.Service.TestFinalize' は、同じパラメーター タイプで 'Finalize' というメンバーを既に定義しています