再次重构一些代码。在其中一个 ASP.NET 页面中看到其中的一些内容:
using (TextBox txtBox = e.Row.Cells[1].FindControl("txtBox") as TextBox)
{
}
不需要处理 txtBox,因为它只是对现有控件的引用。而且您根本不想处理控件。我什至不确定这是否有害 - 就像它似乎要求不恰本地处理底层控件(尽管我还没有看到以这种方式使用它会产生任何不良影响)。
最佳答案
TextBox
从其 Component 继承了 IDisposable
的实现父类(super class)。该实现从其 site container 中删除组件如果有的话。
因此,如果文本框实际上驻留在站点容器中,那么这样做可能会产生不良影响。此外,在对象上调用 Dispose()
之后,无论如何都不应再次使用它(它不再处于可用状态)。
我建议您在 ASP.NET Web 控件中避免这种模式。
关于c# - 为什么要在 ASP.NET 中以这种方式使用 using 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5275498/