tha*_*Guy 5 c# using-statement
我已经阅读了几篇关于using语句的文章,试图了解何时应该使用它.这听起来像大多数人认为它应该尽可能多地使用,因为它可以保证处理未使用的物体.
问题是所有的例子总是显示如下:
using (SqlCommand scmFetch = new SqlCommand())
{
// code
}
Run Code Online (Sandbox Code Playgroud)
这是有道理的,但它只是一小段代码.在数据库上执行查询时应该怎么做?所有步骤是什么?它看起来像这样:
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();
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是:
•是否可以使用4,5,10个嵌套的using语句来确保处理所有对象?
•我在什么时候做错了什么,我应该考虑修改吗?
•如果由于嵌套的using语句太多而需要修订,我有哪些选择?
您最终可能会遇到强大的层次结构,但您的代码应该非常高效,对吧?或者你应该只将SqlDataAdapter对象放在using语句中,它会以某种方式确保所有其他对象也被处理掉?
感谢名单.
拥有许多嵌套的using语句是完全有效的:
using(A a = new A())
using(B b = new B())
{
a.SomeMethod(b);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |