none
"Using" dentro de um método RRS feed

  • Pergunta

  • Pessoal preciso de saber se existe uma forma de dar um using em uma biblioteca dentro de um método qualquer, seja construtor ou click

    tipo

    public class Exemplo
    {
       public Exemplo()
       {
           using System.Drawing;
        }
    }
    

    vcs podem esta axando estranho, mas é pq eu preciso exportar o código e dessa forma não ha como utilizar a importação convencional

     

    Obrigado!

     

    segunda-feira, 27 de dezembro de 2010 17:46

Respostas

  • ja vi como pode ser feito

    quando eu quero dar referencia a um biblioteca sem using

    é só passar assim, no exemplo que precisei para criação de um objeto

     

    WebImpDll.ImpWeb wi = WebImpDll.ImpWeb()

     

    :/

    tão simples

    mesmo assim vlw Olavo

    • Marcado como Resposta Daniel Vitor terça-feira, 28 de dezembro de 2010 12:55
    terça-feira, 28 de dezembro de 2010 12:55

Todas as Respostas

  • Amigo

    O Using opde até ser utilizado dentro de um método, mas ele consite em uma forma de manter um objeto em memoria durante a sua utilização, após o termino do código que está dentro do seu contexto, ele será limpo da memoria e suas referencais apagadas, por exemplo:

     using(System.Drawing.Bitmap b = new Bitmap(@"Imagem.bmp"))
         {
           b.Save("Image2.bmp");
         }
    
    é bem diferente do using que se coloca no topo da classe que informa quais bibliotecas aquela classe poderá utilizar


    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    segunda-feira, 27 de dezembro de 2010 17:58
  • tentei dessa forma e não deu certo, sera q to fazendo algo errado, pois preciso fazer referencia na realidade a uma dll

    protected
     void
     Button2_Click(object
     sender, EventArgs e)
    {
    using (WebImpDll.ImpWeb wi = new WebImpDll.ImpWeb())
    {

     }
    }
    segunda-feira, 27 de dezembro de 2010 19:11
  • se você precisa fazer a referencia a DLL, primeiro você tem de adicionar a referencia dela ao projeto:

    no solution explorer, clique em cima do projeto, ADD REFERENCE > procure a DLL e clique em OK

    depois no topo da classe, coloque USING e o endereço da classe que deseja usar da DLL, lembrando que tem de seguir o namespace correto dela


    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    segunda-feira, 27 de dezembro de 2010 19:17
  • é isso que eu quero dizer, feito a referencia a dll no projeto preciso dar o "USING" mas dentro de um método e não no topo da classe tem como?
    terça-feira, 28 de dezembro de 2010 11:03
  • tem, você pode colocar dentro do using no metodo o endereço inteiro do namespace da classe que você quer referenciar, so que ela so será visivel dentro do contexto do using, ou seja dentro dos {}

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    terça-feira, 28 de dezembro de 2010 11:15
  • vc poderia me dar um exemplo?
    terça-feira, 28 de dezembro de 2010 11:16
  • mas eu já dei, meu post lá de cima com a classe Bitmap dentro do using

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    terça-feira, 28 de dezembro de 2010 11:27
  • eu vi como vc fez porem tentei usar daquela forma e não deu certo

    usei dessa forma:

    protected void Button2_Click(object sender, EventArgs e)
    {
    
    using(WebImpDll.ImpWeb wi = new WebImpDll.ImpWeb())  
     {
    
     }
    }
    
    

    pq eu so precisaria carregar o construtor da classe que tenho na dll

    só assim : ImpWeb wi = new ImpWeb();

    -----ImpWeb é a classe que esta na Dll WebImpDll--------

    terça-feira, 28 de dezembro de 2010 11:32
  • qual o erro ?

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    terça-feira, 28 de dezembro de 2010 12:00
  • Error    1    'WebImpDll.ImpWeb': type used in a using statement must be implicitly convertible to 'System.IDisposable'  
    terça-feira, 28 de dezembro de 2010 12:06
  • ja vi como pode ser feito

    quando eu quero dar referencia a um biblioteca sem using

    é só passar assim, no exemplo que precisei para criação de um objeto

     

    WebImpDll.ImpWeb wi = WebImpDll.ImpWeb()

     

    :/

    tão simples

    mesmo assim vlw Olavo

    • Marcado como Resposta Daniel Vitor terça-feira, 28 de dezembro de 2010 12:55
    terça-feira, 28 de dezembro de 2010 12:55
  • Error    1    'WebImpDll.ImpWeb': type used in a using statement must be implicitly convertible to 'System.IDisposable'  


    Só para não deixar os leitores a ver navios, esse erro siguinifica que para que uma classe seja instancia dentro da diretiva usign, ela precisa implementar a interface IDisposable.

    Segue exemplo:

    public class EssaDaCerto : IDisposable
    {
      //Codigo
    }
    
    public class EssaNaoDa
    {
      //Codigo
    }
    
    Quando você usa a diretiva using, quando aquele bloco de codigo acaba, a memoria usada pela instanca da classe é liberada e recolhida pelo Coletor de Lixo(GC), e é isso que o IDisposable faz, liberar "recurso"!

    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.wordpress.com/

    quarta-feira, 29 de dezembro de 2010 12:38