Em C #, qual é a diferença entre um destrutor e um método Finalize em uma classe?
Qual é a diferença, se houver, entre um destrutor e um método Finalize em uma classe?
Descobri recentemente que o Visual Studio 2008 considera um destrutor sinônimo de um método Finalize, o que significa que o Visual Studio não permite que você defina simultaneamente os dois métodos em uma classe.
Por exemplo, o seguinte fragmento de código:
class TestFinalize
{
~TestFinalize()
{
Finalize();
}
public bool Finalize()
{
return true;
}
}
Dá o seguinte erro na chamada para finalizar no destruidor:
A chamada é ambígua entre os seguintes métodos ou propriedades: 'TestFinalize. ~ TestFinalize ()' e 'TestFinalize.Finalize ()'
E se a chamada para Finalizar for comentada, ocorrerá o seguinte erro:
Digite 'ManagementConcepts.Service.TestFinalize' já define um membro chamado 'Finalize' com os mesmos tipos de parâmetros