Tuesday, 08 de January de 2008
Try/finaly ou using ?
Sabemos que no final das contas, ambos fazem a mesma coisa.
No entanto...
Ao usar o try/finnaly o objeto instanciado por você, deverá ser liberado dentro de finnaly (você deverá fazer isso manualmente), mas quando usamos using, está liberação é feita automaticamente.
O using atende a liberação de recursos. O objeto que será instânciado no comando “using”, é liberado automaticamente, ou seja, é chamado o “Dispose” deste objeto de forma totalmente automática.
O using é um tipo de atalho da liguagem. O compilador traduz o using para um comando muito semelhante a instrução nativa try/finaly.
Na prática como funciona? Vejamos um exemplo simples:
1- Aqui um código puro sem bloco de segurança.
TextWriter writer = new StreamWriter(”texto.txt”);
writer.WriteLine(”Aqui vem o texto.”);
writer.Dispose();
2- Agora o mesmo código, só que em uma construção dentro de um bloco seguro e com a liberação do recurso do objeto.
TextWriter writer = null;
try
{
writer = new StreamWriter(”texto.txt”);
writer.WriteLine(”Aqui vem o texto.”);
}
finally
{
if (writer != null)
writer1.Dispose();
}
3- Aqui o equivalente ao código anterior com o comando “using”.
using ( TextWriter writer = new StreamWriter(”texto.txt”) )
{
writer2.WriteLine(”Aqui vem o texto.”);
}
Bom, agora segue a dica:
Nunca se esqueça de SEMPRE usar o “using” quando estiver trabalhando com recursos não gerenciados.
Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o
login