1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Pela 0:30 desta Sexta-feira (9 de Dezembro, 23:30 de Quinta-feira nos Açores) o Fórum e restantes sites da ZWAME vão estar offline para manutenção durante cerca de 1h30.
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

Delegate em C#

Discussão em 'Programação' iniciada por candycane, 16 de Janeiro de 2009. (Respostas: 3; Visualizações: 853)

  1. candycane

    candycane Power Member

    Bom dia :)

    Eu tenho uma classe abstratc Gerir que contem um metodo virtual LimparDados(). O que pretendo é aceder a esse metodo LimparDados() com um delagate para não ter que instanciar um objecto de uma das classes filho da classe Gerir...

    Para o delegate tenho:
    Código:
    public delegate void DelegateLimpar(TextBox txt, Form f);
    
    e o metodo Limpar Dados esta assim:
    Código:
    
    public virtual void LimparCampos(TextBox focus, Form f)
            {
                foreach (Control c in f.Controls)
                {
                    if (c is TextBox)
                        c.Text = "";
                    else if (c is ComboBox)
                    {
                        ComboBox cb = (ComboBox)c;
                        cb.SelectedIndex = 0;
                    }
                    else if (c is CheckBox)
                    {
                        CheckBox chk = (CheckBox)c;
                        chk.Checked = false;
                    }
                }
    
                focus.Focus();
    
            }
    
    Como eu posso aceder a ess metodo em um dos Form do meu projecto com delegates, ou algo que não me obrigue a instanciar um objecto...
    O metodo tem que ser virtual porque estou a muda-lo em uma classe...

    Qualquer ajuda é bem vinda :)
     
  2. SoundSurfer

    SoundSurfer Power Member

    Não é com delegates... tens de definir o método como "static"


    EDIT: Não li que querias alterar o método numa classe filha, o static não dá.
     
    Última edição: 16 de Janeiro de 2009
  3. joao.miguel

    joao.miguel Power Member

    ou tens um método static e não precisas de criar instâncias
    ou tens o teu método virtual (para poderes então fazer o override na class que vais herdar) e crias uma instância do objecto

    Os métodos static não suportam herança.
     
  4. candycane

    candycane Power Member

    Já entendi... Pelos vistos tenho mesmo que instanciar um objecto.. Obrigada a todos :)
     

Partilhar esta Página