none
Método dinâmico C# .NET! RRS feed

  • Pergunta

  • Boa tarde,

    Estou precisando fazer um método dinâmico no C#.

    Pois minha aplicação irá criar vários LinkButton dinamicamentes, mas para cada LinkButton que a aplicação criar dinâmicamente precisarei criar um método de evento para eles. Exemplo:

    A aplicação cria um LinkButton:
    LinkButton linkTeste = new LinkButton();

    Depois de criada é atribuída o ID, NOME e o EVENTO do click:
    linkTeste.ID = "linkTeste";
    linkTeste.Text = "Clique aqui";
    linkTeste.Click += new EventHandler(linkTeste_Click);

    Se eu for na mão e criar um método como esse abaixo:
    private void linkTeste_Click(object sender, EventArgs args)
    {
    }

    A aplicação funciona perfeitamente, mas esses métodos ( como esse acima ) é preciso ser criado dinâmicamente, pois terá que existir um método para cada LinkButton criado.

    Já pesquisei no Google, achei que estava chegando muito próximo da solução quando descobri "DynamicMethod" mas não estou conseguindo me achar!

    Se alguem tiver alguma dica eu seria muito grato!

    Obrigado!

    Brunno Cardoso

     

    • Movido Rogerio Jerez sexta-feira, 9 de julho de 2010 13:44 Movido para o Forum apropriado. (De:Conteúdo do site TechNet)
    quinta-feira, 8 de julho de 2010 19:00

Respostas

  • Brunno,

    Concordo com a sugestão do Rui, mas só complementando: o mais comum é utilizar expressões lambda para representar os handlers dos eventos. O código do Rui ficaria da seguinte maneira:

    linkTeste.Click += (s, e) => {
        // implementação
    };

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com  

    sábado, 10 de julho de 2010 02:46
    Moderador
  • Olha eu conheço um outro jeito.... que tambem pode servir...

    linkTeste.ID = "linkTeste";
    linkTeste.Text = "Clique aqui";
    linkTeste.Click += delegate(object sender, EventArgs e) {
      // TODO:
    };


    What would Brian Boitano do ?
    ((2B || !2B) is Question) ?
    sábado, 10 de julho de 2010 02:34
    Moderador

Todas as Respostas