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();