das ist ein sehr informativer Thread, aber ich hätte trotzdem noch ein paar Fragen zum Dispose =)
1. Ist folgende Implementierung richtig? Ist das "this.myClass2 = null;" im Dispose von Class1 nötig? Gehe ich recht in der Annahme, daß wenn ich es nicht auf null setze ja noch eine Referenz existiert und der Speicher der Klasse(n) vom GC nicht freigegeben wird?
public class Class1 : IDisposable
{
private Class2 myClass2;
public Class1()
{
this.myClass2 = new Class2();
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
if (this.myClass2 != null)
{
this.myClass2.Dispose(disposing);
this.myClass2 = null;
}
}
}
}
public class Class2 : IDisposable
{
protected virtual void Dispose(bool disposing)
{
...
}
}
2. Wird in einer vom VisualStudio Designer erstellten Form die auf der Form befindlichen Controls automatisch Dispose aufgerufen wenn die Form disposed wird oder muß ich das selbst in der Dispose() der Form machen? (dort wird vom Designer ja nur base.Dispose(); erzeugt).
Viele Grüße
Max