Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Resolução] Faça como eu fiz: ações em botões de interface gráfica

IAcaoBotao

internal interface IAcaoBotao
{
    void Executar();
}

SalvarAcao.cs

internal class SalvarAcao : IAcaoBotao
{
    public void Executar()
        => Console.WriteLine("Salvando dados no banco...");
}

EditarAcao.cs

internal class EditarAcao : IAcaoBotao
{
    public void Executar()
        => Console.WriteLine("Editando informações do cadastro...");
}

ExcluirAcao.cs

internal class ExcluirAcao : IAcaoBotao
{
    public void Executar()
        => Console.WriteLine("Excluindo registro do sistema...");
}

Program.cs

List <IAcaoBotao> botoes =
[
    new SalvarAcao(),
    new EditarAcao(),
    new ExcluirAcao()
];

foreach (var botao in botoes)
    botao.Executar();
2 respostas
solução!

Oi, Gerson! Tudo bem?

Agradeço por compartilhar seu código com a comunidade Alura.

Você aplicou muito bem o conceito de polimorfismo de subtipos criando a interface IAcaoBotao e implementando diferentes comportamentos nas classes SalvarAcao, EditarAcao e ExcluirAcao. A utilização da lista List<IAcaoBotao> junto com o foreach deixou o código organizado e flexível, mostrando que você entendeu como tratar objetos diferentes de forma uniforme.

Uma dica interessante para o futuro é utilizar ToString() para representar melhor suas classes quando necessário. Veja este exemplo:


class SalvarAcao : IAcaoBotao
{
    public void Executar()
        => Console.WriteLine("Salvando dados");

    public override string ToString()
        => "Ação de salvar";
}

No código acima, ToString() retorna uma descrição da classe, o que pode ser útil para logs ou exibição em menus.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Obrigado Rafaela..
Eu uso o ToString sempre que possível, só não usei nesse exercício porque o enunciado pede pra usar o metodo executar