Olá pessoal,
Para quem está iniciando, já deve ter percebido o uso da palavra reservada "using" seguido de um namespace e que fica localizado no topo de nossas classes.
Este tipo de declaração é utilizada para fazer referência a um namespace que pode estar presente numa dll de forma a acessar facilmente classes que estão dentro deste namespace. Parece complicado? Mas não é.
Imaginemos que temos um namespace chamado CodigoFonte.NovoPortal.RN e dentro dele temos classes que fazem manipulação no banco de dados, como por exemplo, a classe Usuarios. Então, se não definirmos o "using" deste namespace no cabeçalho de nossa classe, teremos que digitar o caminho completo para a classe, caso desejássemos usá-la.
Então, teríamos:
E agora com o using declarado no topo da classe
// com o "using" Usuarios usu = new Usuarios();
Veja que conseguimos diminuir drasticamente a forma como declaramos nossos objetos.
Este recurso também existe em outras linguagens e seguem a mesma teoria, como o Java - lá o termo é "package" para agrupar as classes e para fazer referência utilizamos a palavra reservada "import".
Porém, o using também pode ser utilizado em outra forma de implementação. Neste caso, muda um pouco de foco e passa a se chamar de "Using Statement", além disto, passa a trabalhar como se fosse um "try/finaly" - no que diz respeito a liberação de recursos. Vamos ao código que vai ser mais simples de entender:
- Neste primeiro exemplo, utilizo a codificação normal e como geralmente fazemos. A idéia é abrir um arquivo e escrever algo nele.
Veja que eu utilizei explicitamente o Dispose(), que irá liberar este arquivo da memória e permitir que seja utilizado por outros processos.
- Agora com o finaly
Bem maior que o anterior, não acham?
- E finalmente com o uso do do nosso bloco "using"
Veja que depois que o código for executado e sair do bloco, será automaticamente limpo e liberado. Por debaixo dos panos, o framework converte este bloco using em um try/finaly. Mas vamos deixar este trabalho para o framework, não? ehehehe
Atualização: Só mais uma coisinha, este tipo de implementação de using com bloco só funciona com classes que implementam a interface IDisposable. :-)
Bom pessoal, espero que tenham gostado da dica.
Até a próxima.
![]() |
CodigoFonte.net » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010 |