以下代码是否相同,例如处置仍会被调用?
如果这样使用using语句,我知道Dispose将被调用:
using (SqlCommand cmd = new SqlCommand(procedureName, sqlConnection))
{
cmd.CommandType = CommandType.StoredProcedure;
if (sqlParams != null)
cmd.Parameters.AddRange(sqlParams.ToArray());
SqlDataReader rdr = cmd.ExecuteReader();
return rdr;
}
我的问题是,实际上是同一件事:
SqlCommand cmd = new SqlCommand(procedureName, sqlConnection)
using (cmd)
{
cmd.CommandType = CommandType.StoredProcedure;
if (sqlParams != null)
cmd.Parameters.AddRange(sqlParams.ToArray());
SqlDataReader rdr = cmd.ExecuteReader();
return rdr;
}
是的-当代码退出using()块时,您可以调用Dispose()的任何东西都会被自动清除,包括您上面给出的示例。