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.
- 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.WriteLine(”Aqui vem o texto.”);
- }
- finally
- {
- if (writer != null)
- writer1.Dispose();
- }
3- Aqui o equivalente ao código anterior com o comando “using”.
- {
- 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:
Postar um comentário