通常我会这样做:
using (SqlCommand cmd = new SqlCommand("XXXX", cnn))
{
using (SqlDataReader dr = cmd.ExecuteReader())
{
//xxxxxx
}
}
甚至这个:
using (SqlCommand cmd = new SqlCommand("XXXX", cnn))
using (SqlDataReader dr = cmd.ExecuteReader())
{
//xxxxxx
}
但是这个怎么样:
using (SqlDataReader dr = new SqlCommand("XXXX", cnn).ExecuteReader())
{
//xxxxxx
}
是否为SqlCommand调用Dispose(),即使我没有将它分配给变量?
答案 0 :(得分:5)
这是否为SqlCommand调用IDisposable,即使我没有将它分配给变量?
没有。它将在Dispose()
(SqlDataReader
)上调用dr
,因为这是表达式返回的对象。