Pergunta

Eu tenho uma classe abstrata e gostaria de usá-lo rapidamente por que não criar uma classe concreta que herdam a classe abstrata. Bem, para definir o método abstrato anonimamente.

Algo assim:

           Command c = new Command(myObject){
               public override void Do()
               {
               }                   
            };

É possível em C # .NET 2.0?

Foi útil?

Solução

Você pode criar um tipo que envolve uma ação fornecendo uma implementação como tal:

class ActionCommand
{
    private readonly Action _action;

    public ActionCommand(Action action)
    {
        _action = action;
    }

    public override void Do()
    {
        _action();
    }                   
};

Isso, então, pode ser usado como assim:

Command c = new Command((Action)delegate()
           {
              // insert code here
           });
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top