c# - 为什么要在 ASP.NET 中以这种方式使用 using 语句?

标签 c# asp.net using-statement

再次重构一些代码。在其中一个 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/

相关文章:

c# - 双击数据网格的问题

c# - ASP.Net MVC3 - 将 Razor 标记作为参数传递

asp.net - 在 app.config 文件中传递十六进制值

java - Java 有 using 语句吗?

c# - 如何正确使用 'using'命令?

c# - List.Contains 无法正常工作

c# - 在 OnActionExecuting 期间以不同方式处理 GET 和 POST

c# - 将 C# 转换为客户端 Javascript

c# - 如何在转换后的字符串中将字符串生成器转换为没有转义序列的字符串

.net - 如何使不需要的命名空间默认不出现在新类之上