Quick Tips: Comando using em C#
Nesta quick tip veremos como usar o comando using do C#.
O comando using faz com que o objeto seja automaticamente destruído após o encerramento do bloco.
Normalmente teríamos o seguinte código:
SqlConnection conexao = new SqlConnection("Data
Source=myServerAddress;Initial Catalog=myDataBase;User
Id=myUsername;Password=myPassword;");
SqlCommand cmd = new SqlCommand("SELECT
* FROM CLIENTE", conexao);
conexao.Open();
cmd.ExecuteNonQuery();
conexao.Close();
Com este código, nossos objetos seriam liberados pelo GC em algum momento, mas não sabemos quando. Para liberar estes objetos da memória imediatamente após o uso dos mesmos, podemos usar o comando using, dessa forma, nosso código ficaria assim:
using (SqlConnection conexao = new SqlConnection("Data Source=myServerAddress;Initial
Catalog=myDataBase;User Id=myUsername;Password=myPassword;"))
{
using (SqlCommand
cmd = new SqlCommand("SELECT * FROM CLIENTE", conexao))
{
conexao.Open();
cmd.ExecuteNonQuery();
conexao.Close();
}
}
Assim, logo após o encerramento do bloco using, o objeto que está nele é automaticamente liberado da memória, executando o método dispose do mesmo.
No final das contas o using
funciona como se fosse um try... finally... sendo o funcionamento do mesmo
semelhante ao código abaixo:
SqlConnection conexao = null;
SqlCommand cmd = null;
try
{
conexao = new SqlConnection("Data Source=myServerAddress;Initial
Catalog=myDataBase;User Id=myUsername;Password=myPassword;");
cmd = new SqlCommand("SELECT * FROM CLIENTE", conexao);
conexao.Open();
cmd.ExecuteNonQuery();
conexao.Close();
}
finally
{
if (null != cmd) ;
cmd.Dispose();
if (null != conexao)
conexao.Dispose();
}
É isso aí pessoal, vou ficando por aqui.
Fiquem a vontade para criticar, tirar dúvidas e sugerir
novos temas.
Abraço.
Ricardo Coelho