我正在审查一个ASP.NET应用程序中的一些旧C#.NET代码,确保所有的SqlConnections都被包含在using块中。
我知道using与try / finally相同,在finally中处理对象的释放,无论在try中发生什么。如果我有一个在using中返回值的方法,即使执行离开该方法时返回,它是否仍会在返回之前/期间/之后调用我的对象上的.Dispose()?
我知道using与try / finally相同,在finally中处理对象的释放,无论在try中发生什么。如果我有一个在using中返回值的方法,即使执行离开该方法时返回,它是否仍会在返回之前/期间/之后调用我的对象上的.Dispose()?
public static SqlCommand getSqlCommand(string strSql, string strConnect){
using (SqlConnection con = new SqlConnection(strConnect))
{
con.Open();
SqlCommand cmd = GetSqlCommand();
cmd.Connection = con;
cmd.CommandText = strSql;
return cmd;
}
}
更新: 接受的答案是我认为最好回答了我的问题,但请注意这个答案指出了这段代码的愚蠢之处,即我正在返回使用已释放连接的命令! :P