Substituindo o método de finalizar
A Finalize método atua como uma salvaguarda para limpar recursos caso sua Dispose não é chamado de método. Você só deve implementar um Finalize método de limpeza de recursos não gerenciados. Você não deve implementar um Finalize método para objetos gerenciados, porque o coletor de lixo limpa recursos gerenciados automaticamente. Por padrão, o o método de Object.Finalize não faz nada. Se desejar que o coletor de lixo para executar operações de limpeza em seu objeto antes de ele recupera a memória do objeto, você deve substituir esse método na sua classe.
Observação
Você não pode substituir o Finalize método nas linguagens de programação C# ou C++.No C#, use sintaxe do destruidor para implementar a Finalize método.Na versão 2.0 do.NET Framework, C++ fornece sua própria sintaxe para implementar o Finalize método, conforme descrito em Destructors and Finalizers in Visual C++.Em versões anteriores, C++ usavam a sintaxe do destruidor para o Finalize o método, como C# faz.
O escopo do Object.Finalize método está protegido. Quando você substituir o método na sua classe, você deve manter esse escopo limitado. Mantendo um Finalize método protegido, você impede que os usuários do seu aplicativo de chamar um objeto Finalize método diretamente.
Um objeto Finalize método deve liberar todos os recursos que são mantidos pelo objeto. Ele também deve chamar o Finalize método para a classe base do objeto. Um objeto Finalize método não deve chamar um método em todos os objetos diferente de sua classe base. Isso ocorre porque os outros objetos sendo chamados podem ser coletados ao mesmo tempo que o objeto de chamada, como no caso de um desligamento de tempo de execução de linguagem comum.
Se você permitir exceções escapar do Finalize método, o sistema pressupõe que o método retornados e continua a chamada a Finalize métodos de outros objetos.
Consulte também
Referência
Conceitos
Implementando um método Dispose
Sintaxe do destruidor em C# e C++
Tratamento e lançamento de exceções