Warum muss ich dispose für ASP.NET-Steuerelemente aufrufen?

Ich mache eine ASP.NET-Entwicklung in VS und habe gerade einen interessanten kleinen Codevorschlag gefunden (ich glaube, sie stammen aus Coderush, aber ich könnte mich irren).

Wenn ich Steuerelemente erstelle, wird mir mitgeteilt, dass ich für sie eine "using" -Anweisung verwenden soll. Ich bin ein bisschen verwirrt darüber, was hier vor sich geht. bei der verwendung sieht mein code ungefähr so aus:

using (HtmlTableRow tableRow = new HtmlTableRow())
{
    tableRow.Attributes.Add("class", isOddRow ? "OddRow" : "EvenRow");
    listingTable.Rows.Add(tableRow);
    addCell(tableRow, row, "issueId");
    addCell(tableRow, row, "Title");
    addCell(tableRow, row, "Type");
    addCell(tableRow, row, "Summary");
}

So erwarte ich, dass es am Ende der using-Anweisung dispose auf der tableRow aufruft. In den Dokumenten in der MSDN-Bibliothek heißt es jedoch:

Die Dispose-Methode versetzt das Control in einen unbrauchbaren Zustand. Nach dem Aufrufen dieser Methode müssen Sie alle Verweise auf das Steuerelement freigeben, damit der belegte Speicher von der Garbage Collection zurückgefordert werden kann.

So würde ich erwarten, dass ich jetzt ein unbrauchbares Objekt in meiner Kontrollstruktur habe, damit es kaputt geht oder nicht gerendert wird oder so. Es scheint jedoch alles gut zu funktionieren.

So frage ich mich, warum alle Kontrollen wegwerfbar sind? Liegt es nur daran, dass einige von ihnen verfügbar sein werden, und wenn sie alle verfügbar sind, kann ein Anruf auf der obersten Ebene an alle untergeordneten Steuerelemente rekursiv weitergeleitet werden?

Ich denke, ich würde verstehen, wenn nicht die Tatsache, dass die Dokumente ausdrücklich sagen, dass das Entsorgen eines Steuerelements es unbrauchbar macht ... Sind die Dokumente einfach falsch?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage