Qual è la differenza, se presente, tra un distruttore e un metodo Finalize in una classe?
Recentemente ho scoperto che Visual Studio 2008 considera un distruttore sinonimo di un metodo Finalize, il che significa che Visual Studio non ti consente di definire contemporaneamente entrambi i metodi in una classe.
Ad esempio, il seguente frammento di codice:
class TestFinalize
{
~TestFinalize()
{
Finalize();
}
public bool Finalize()
{
return true;
}
}
Fornisce il seguente errore sulla chiamata a Finalize nel distruttore:
La chiamata è ambigua tra i seguenti metodi o proprietà: "TestFinalize. ~ TestFinalize ()" e "TestFinalize.Finalize ()"
E se la chiamata a Finalize è commentata, restituisce il seguente errore:
Il tipo "ManagementConcepts.Service.TestFinalize" definisce già un membro denominato "Finalize" con gli stessi tipi di parametro