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

Faça como eu fiz: exibindo mídias

Program.cs

using Galeria.Modelos;

List<Midia> midias = new List<Midia> {
    new Imagem("wallpaper.png", "1920x1080"),
    new Video("aventurasdocelio.mp4", 133)
};

Console.Clear();
midias.ForEach(m => m.ExibirDetalhes());

Midia.cs

namespace Galeria.Modelos;
class Midia {

    public string? Nome {get;}

    public Midia(string? nome) {
        Nome = nome;
    }

    public virtual void ExibirDetalhes() {
        Console.WriteLine("Midia Genérica.");
    }
}

Imagem.cs

namespace Galeria.Modelos;
class Imagem : Midia {

    public string? Resolucao {get;}

    public Imagem(string? imagem, string? resolucao) : base (imagem) {
        Resolucao = resolucao;
    }

    public override void ExibirDetalhes() {
        Console.WriteLine($"Imagem: {Nome} - Resolução: {Resolucao}");
    }
    
}

Video.cs

namespace Galeria.Modelos;
class Video : Midia {

    public int Duracao {get;}

    public Video(string? imagem, int duracao) : base (imagem) {
        Duracao = duracao;
    }

    public override void ExibirDetalhes() {
        Console.WriteLine($"Vídeo: {Nome} - Duração: {Duracao} minutos.");
    }
    
}
1 resposta
solução!

Olá, Diego, como vai?

Seu código implementa corretamente os conceitos de herança e polimorfismo solicitados no exercício. A estrutura das classes está bem definida, utilizando adequadamente o modificador virtual na classe base e o override nas classes derivadas para garantir que cada tipo de mídia exiba seus detalhes específicos. O uso do método ForEach com uma expressão lambda no arquivo principal também é uma excelente escolha para iterar sobre a lista de forma concisa.

Parabéns pela resolução do exercício e por compartilhar seu progresso. Continue praticando esses conceitos fundamentais da orientação a objetos para fortalecer sua base de desenvolvimento.

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