我读过几篇关于 using 语句的文章,试图理解何时应该使用它。听起来大多数人认为应该尽可能多地使用它,因为它可以保证处理未使用的物品。
问题是所有的例子总是显示这样的内容:
using (SqlCommand scmFetch = new SqlCommand())
{
// code
}
这是有道理的,但它只是一小段代码。在数据库上执行查询时应该做什么?全部步骤是什么?它会看起来像这样吗:
string sQuery = @"
SELECT [ID], [Description]
FROM [Zones]
ORDER BY [Description] ";
DataTable dtZones = new DataTable("Zones");
using (SqlConnection scnFetchZones = new SqlConnection())
{
scnFetchZones.ConnectionString = __sConnectionString;
scnFetchZones.Open();
using (SqlCommand scmdFetchZones = new SqlCommand())
{
scmdFetchZones.Connection = scnFetchZones;
scmdFetchZones.CommandText = sQuery;
using (SqlDataAdapter sdaFetch = new SqlDataAdapter())
{
sdaFetch.SelectCommand = scmdFetchZones;
sdaFetch.Fill(dtZones);
}
}
if (scnFetchZones.State == ConnectionState.Open)
scnFetchZones.Close();
}
我想知道的是:
• 是否可以使用 4、5、10 个嵌套的 using 语句来确保释放所有对象?
• 我在什么时候做错了?我应该考虑修改吗?
• 如果修订is由于嵌套的 using 语句太多,我有什么选择?
您最终可能会得到一个强大的层次结构,但您的代码应该非常高效,对吗?或者你应该只输入,例如SqlDataAdapter
using 语句中的对象,它会以某种方式确保所有其他对象也被释放?
Thanx.
有许多嵌套的 using 语句是完全有效的:
using(A a = new A())
using(B b = new B())
{
a.SomeMethod(b);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)