Delegate em C#

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 :)
 
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:
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.
 
Back
Topo