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

[Dúvida] Compila mas não mostra o nome das musicas

O programa compila mas não aparece o nome das musicas, não vi nada de errado

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

main.cs

//Chama a Classe
Album albumDoQueen = new Album();
albumDoQueen.Nome = "A night at the opera";
//Cria o objeto musica 1
Musica musica1 = new Musica();
albumDoQueen.Nome = "Love of My Life";
//cria o objeto musica2
Musica musica2 = new Musica();
albumDoQueen.Nome = "Bohemian Rapsody";

albumDoQueen.AdicionarMusica(musica1);
albumDoQueen.AdicionarMusica(musica2);

albumDoQueen.ExibirMusicasDoAlbum();

Musica.cs

class Musica
{
/*
    public string nome;
    public int duracao;
    public bool disponivel;
    public DateTime dataLancamento;
*/

    public string Artista { get; set; }//Como a classe está em outro arquivo deve declarar public para se tornar acessivel
    public string Nome { get; set; }
    //public string genero;
    public int Duracao { get; set; }
    public bool Disponivel { get; set; }//fornece atribuito de leitura(get) e escrita(set)
    public string DescricaoResumida => $"A musica {Nome} pertence a banda{Artista}";//Metodod Lambda, apenas leitura equivale ao de baixo
   
//Metodo
public void ExibirFichaTecnica()
{
    Console.WriteLine($"Nome: {Nome}");
    Console.WriteLine($"Artista: {Artista}");
    Console.WriteLine($"Duração: {Duracao}");

    if (Disponivel)
    {
        Console.WriteLine("Disponivel no plano");
        //ExibirIdetinficação();

    }
    else
    {
        Console.WriteLine("Disponivel no plano Plus++");
        // ExibirIdetinficação();
    }

}
}

Album.cs


class Album
{
    //Usa lista para dicionar um campo privado
    private List<Musica> musicas = new List<Musica>();
    public string Nome { get; set; }
    public int DuracaoTotal { get; set; }
    public void AdicionarMusica(Musica musica)
    {
        musicas.Add(musica);
    }
    public void ExibirMusicasDoAlbum()
    {
        Console.WriteLine($"Musicas da lista do album {Nome}");
        foreach (var musica in musicas)
        {
            Console.WriteLine($"Musica {musica.Nome}");
        }
    }
}
2 respostas

Olá Ivan, tudo bem?

Na sua classe main.cs, ao criar os objetos musica1 e musica2, faltou setar o nome para ambos.

//Chama a Classe
Album albumDoQueen = new Album();
albumDoQueen.Nome = "A night at the opera";
//Cria o objeto musica 1
Musica musica1 = new Musica();
//Seta o nome para musica1
musica1.Nome = "Love of My Life";
//cria o objeto musica2
Musica musica2 = new Musica();
//Seta o nome para musica2
musica2.Nome = "Bohemian Rapsody";

albumDoQueen.AdicionarMusica(musica1);
albumDoQueen.AdicionarMusica(musica2);

albumDoQueen.ExibirMusicasDoAlbum();

Espero ter ajudado e bons estudos!

solução!

Obrigado funcionou perfeitamente