Je pensais que le GC allait appeler dispose finalement, si votre programme n'a pas mais que vous devez appeler Dispose() dans votre programme juste pour faire le nettoyage déterministe.
Cependant, à partir de mon petit programme de test, je ne vois pas Disposer d'avoir à intervenir à tous....
public class Test : IDisposable
{
static void Main(string[] args)
{
Test s = new Test();
s = null;
GC.Collect();
Console.ReadLine();
}
public Test()
{
Console.WriteLine("Constructor");
}
public void Dispose()
{
Console.WriteLine("Dispose");
}
}
// La sortie est juste "Constructeur", je n'ai pas "Jeter" comme je m'attends. Qu'est-ce?
EDIT: Oui, je sais que je devrais appeler dispose() - je fais suivre le modèle standard lors de l'utilisation d'objets jetables. Ma question se pose parce que je suis en train de traquer une fuite de quelqu'un elses code, qui est géré en C++ (une autre couche de complexité qui serait le bon sujet d'un autre fil).