Boa Noite Pessoal,
Tenho uma dúvida em relação a este código que eu encontrei
public class Calculator : IDisposable
{
// Campos
private bool disposed = false;
// Construtores e Destrutores.
public Calculator()
{
Console.WriteLine(":: Calculator being created");
}
~Calculator()
{
Console.WriteLine(":: Calculator being finalized");
this.Dispose();
}
public void Dispose()
{
if (!this.disposed)
{
Console.WriteLine(":: Calculator being disposed");
}
this.disposed = true;
GC.SuppressFinalize(this);
}
}
A minha dúvida é sobre o uso do destruidor, pois pelo que eu sei ele não é recomendado por conta de entrar na Fila de Espera da Coleta de Lixo, mas só que ele colocou um método da Interface IDisposable, para poder ser usado em uma Using Keyword, se eu usar
a Using ele não entrará no Destruidor por conta do método estatico GC.SuppressFinalize(this) ? então, ele não entra na coleta de lixo correto? então, o destruidor apenas parassará a ser chamado caso eu me esqueça de chamar o Using certo ? seria eficaz.. ?
using ( Calculadora calculadora = new Calculadora())
{
//...
}