Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Faça como eu fiz: execução de tarefas agendadas

Program.cs

using Task.Modelos;

List<TarefaAgendada> tarefas = new List<TarefaAgendada> {
    new BackupTarefa(),
    new RelatorioTarefa(),
    new LimpezaTarefa()
};

Console.Clear();
tarefas.ForEach(t => t.Executar());

TarefaAgendada.cs

namespace Task.Modelos;
abstract class TarefaAgendada {
    public abstract void Executar();
}

BackupTarefa.cs

namespace Task.Modelos;
class BackupTarefa : TarefaAgendada {
    public override void Executar() {

        Console.WriteLine("Executando backup do sistema...");
        Thread.Sleep(1400);
        Console.WriteLine("Backup finalizado!");
    }
}

RelatorioTarefa.cs

namespace Task.Modelos;
class RelatorioTarefa : TarefaAgendada {
    public override void Executar() {
        
        Console.WriteLine("Gerando e enviando relatórios...");
        Thread.Sleep(2350);
        Console.WriteLine("Os relatórios foram enviados com sucesso!");
    }
}

LimpezaTarefa.cs

namespace Task.Modelos;
class LimpezaTarefa : TarefaAgendada {
    public override void Executar() {
        
        Console.WriteLine("Limpando arquivos temporários...");
        Thread.Sleep(1250);
        Console.WriteLine("Arquivos limpos com sucesso!");
    }
}
1 resposta
solução!

Olá, Diego, como vai?

Seu código implementa corretamente os conceitos de classes abstratas e polimorfismo de subtipos solicitados no exercício. A estrutura das classes herdando de TarefaAgendada e a utilização do método override garantem que cada tarefa execute sua lógica específica ao ser chamada dentro da lista. O uso do Thread.Sleep e do Console.Clear foram ótimas adições para tornar a simulação da execução mais realista.

Parabéns por compartilhar sua resolução e continue praticando.

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