Зачем мне нужно вызывать распоряжение на элементах управления ASP.NET?

Я занимаюсь разработкой ASP.NET в VS и только что нашел интересное небольшое предложение кода (я думаю, что они сделаны из coderush, но я могу ошибаться).

Всякий раз, когда я создаю элементы управления, это говорит мне, что я должен использовать для них оператор "using". Я немного смущен тем, что здесь происходит, хотя. с использованием моего кода выглядит примерно так:

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");
}

Поэтому я ожидаю, что в конце оператора using он вызовет dispose для tableRow. Тем не менее, документы в библиотеке MSDN говорят:

Метод Dispose оставляет элемент управления в непригодном для использования состоянии. После вызова этого метода вы должны освободить все ссылки на элемент управления, чтобы память, которую он занимал, могла быть возвращена сборщиком мусора.

Поэтому я ожидаю, что в моей структуре управления теперь есть непригодный объект, чтобы он сломался или не рендерился или что-то в этом роде. Тем не менее, все, кажется, работает просто отлично.

Так что мне интересно, почему все элементы управления одноразовые? Не потому ли, что некоторые из них будут такими, и их создание одноразово означает, что один вызов для удаления на верхнем уровне может затем рекурсивно передаваться всем дочерним элементам управления?

Думаю, я бы понял, если бы не тот факт, что в документах прямо сказано, что удаление элемента управления делает его непригодным для использования ... Являются ли документы просто неправильными?

Ответы на вопрос(1)

Ваш ответ на вопрос