¿Cuál es la diferencia, si la hay, entre un destructor y un método Finalize en una clase?
Recientemente descubrí que Visual Studio 2008 considera un destructor sinónimo de un método Finalize, lo que significa que Visual Studio no le permitirá definir simultáneamente ambos métodos en una clase.
Por ejemplo, el siguiente fragmento de código:
class TestFinalize
{
~TestFinalize()
{
Finalize();
}
public bool Finalize()
{
return true;
}
}
Da el siguiente error en la llamada a Finalizar en el destructor:
La llamada es ambigua entre los siguientes métodos o propiedades: 'TestFinalize. ~ TestFinalize ()' y 'TestFinalize.Finalize ()'
Y si se comenta la llamada a Finalizar, da el siguiente error:
El tipo 'ManagementConcepts.Service.TestFinalize' ya define un miembro llamado 'Finalizar' con los mismos tipos de parámetros