【发布时间】:2015-08-15 05:21:12
【问题描述】:
我刚刚开始使用“使用”来确保无论发生什么情况都可以处理资源。
下面是我为检索一些数据而编写的一些代码示例。我的问题是:
所有的“使用”都需要吗?还是只有第一个就足够了?
SomeMethod()
{
using (SqlConnection cn = new SqlConnection("myConnection"))
{
cn.Open();
using (SqlCommand cmd = cn.CreateCommand())
{
cmd.CommandText = "myQuery";
using (SqlDataReader rdr = cmd.ExecuteReader())
{
if(rdr.HasRows)
{
while (rdr.Read())
// do something
}
}
}
}
}
【问题讨论】:
-
简答:都是必填项。
-
好吧,我想是的 - 有道理(尽管肯定还有很多事情比我知道的要多)。
-
即使因为
Dispose不做任何重要的事情而不需要,也最好使用using。为什么?因为你不知道它并且它正在实现IDisposable,通常不是无缘无故的。 -
值得注意的是,在某些情况下您可以chain
using's together 减少缩进等。