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

Faça como eu fiz: mais uma classe

Para essa atividade, eu criei uma nova propriedade dentro da classe Musica, que seria um objeto da classe Genero. Genero foi uma nova classe que eu criei e que contém apenas o nome de um gênero específico.

Genero.cs

public class Genero {
    public string? NomeGenero {get; set;}
}

Além disso, eu adicionei, dentro do método de exibição da ficha técnica, uma outra linha para que ele exibisse o nome do objeto Genero presente na música. Também criei um novo método para que a classe pudesse receber esse objeto, que seria especificado no programa principal por meio de uma passagem de parâmetros.

Musica.cs

public class Musica {
    public string? Nome {get; set;}
    public string? Artista {get; set;}
    public int Duracao {get; set;}
    public bool Disponivel {get; set;}
    public string? Slogan => $"A música {Nome} pertence à banda {Artista}";
    private Genero? GeneroMusica;

    public void AdicionarGeneroMusica(Genero genero) {
        GeneroMusica = genero;
    }
    public void ExibirFichaTecnica() {
        Console.WriteLine("=====================================");
        Console.WriteLine ($"Nome da Música: {Nome}");
        Console.WriteLine ($"Nome do Artista: {Artista}");
        Console.WriteLine ($"Gênero da Música: {GeneroMusica!.NomeGenero}");
        Console.WriteLine ($"Duração da Música: {Duracao} segundos.");
        if (Disponivel) Console.WriteLine("Disponível no plano.");
        else Console.WriteLine("Não disponível no plano.");
        Console.WriteLine("=====================================");
        Console.ReadKey();
    }
}

Program.cs

var musica1 = new Musica();
var musica2 = new Musica();

musica1.Nome = "All my Life"; musica1.Artista = "Foo Fighters";
musica2.Nome = "Pure"; musica2.Artista = "Silver Chair";

musica1.Duracao = 271;
musica2.Duracao = 124;

var rock = new Genero();
rock.NomeGenero = "Rock";

var trap = new Genero();
trap.NomeGenero = "Trap";

musica1.AdicionarGeneroMusica(rock);
musica2.AdicionarGeneroMusica(trap);

Console.Clear();
musica1.ExibirFichaTecnica();
musica2.ExibirFichaTecnica();
1 resposta
solução!

Olá, Diego! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso da composição de classes para criar entidades com C#, utilizou muito bem o método de associação para vincular objetos e ainda compreendeu a importância do encapsulamento para organizar e proteger os dados.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Sugestão de conteúdo para você mergulhar ainda mais no tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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