Зачем мне нужно вызывать распоряжение на элементах управления 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 оставляет элемент управления в непригодном для использования состоянии. После вызова этого метода вы должны освободить все ссылки на элемент управления, чтобы память, которую он занимал, могла быть возвращена сборщиком мусора.
Поэтому я ожидаю, что в моей структуре управления теперь есть непригодный объект, чтобы он сломался или не рендерился или что-то в этом роде. Тем не менее, все, кажется, работает просто отлично.
Так что мне интересно, почему все элементы управления одноразовые? Не потому ли, что некоторые из них будут такими, и их создание одноразово означает, что один вызов для удаления на верхнем уровне может затем рекурсивно передаваться всем дочерним элементам управления?
Думаю, я бы понял, если бы не тот факт, что в документах прямо сказано, что удаление элемента управления делает его непригодным для использования ... Являются ли документы просто неправильными?