[C#在这种情况下仍会被Dispose调用吗?

问题描述 投票:0回答:1

以下代码是否相同,例如处置仍会被调用?

如果这样使用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;
}
c# dispose using idisposable
1个回答
0
投票

是的-当代码退出using()块时,您可以调用Dispose()的任何东西都会被自动清除,包括您上面给出的示例。

© www.soinside.com 2019 - 2024. All rights reserved.