Si devuelvo un valor dentro de un bloque de uso en un método, ¿el uso dispone del objeto antes del retorno?
Estoy revisando un código antiguo de C # .NET en una aplicación ASP.NET asegurándome de que todoSqlConnections están envueltos enutilizando bloques
Yo sé esoutilizando es lo mismo quetratar / finalmente donde dispone del objeto en elfinalmente pase lo que pase en eltratar. Si tengo un método que devuelve un valor dentro deutilizando, a pesar de que la ejecución deja el método cuando regresa, todavía llama.Disponer() en mi objeto antes / durante / después de que regrese?
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;
}
}
Actualizar: La respuesta aceptada es la que creo que responde mejor a mi pregunta, pero tenga en cuenta queesta respuesta ¡Capté la estupidez de este código, que estoy devolviendo un comando que usa una conexión eliminada! :PAGS