Olá pessoal, eu adicionei uma nova classe para o projeto que estou desenvolvendo no curso de orientação à objetos em C#. Adicionei a classe Genero e relacionei na minha classe Musica conforme o código abaixo:
public class Genero
{
public Genero(string nome, string descricao)
{
Nome = nome;
Descricao = descricao;
}
public string Nome { get; }
public string Descricao { get; set;}
}
Classe Musica
using System.Reflection.Metadata.Ecma335;
class Musica
{
public Musica(Banda artista, string nome, Genero genero)
{
Artista = artista;
Nome = nome;
Genero = genero;
}
public string Nome { get; }
public Banda Artista { get; }
public int Duracao { get; set; }
public bool Disponivel { get; set; }
public Genero Genero { get; }
public string DescricaoResumida => //Arrow Function (LAMBDA)
$"A música {Nome} pertence à banda {Artista}";
public void ExibirFichaTecnica()
{
Console.WriteLine($"Nome: {Nome}");
Console.WriteLine($"Artista: {Artista.Nome}");
Console.WriteLine($"Duração: {Duracao}");
Console.WriteLine($"Genero: {Genero.Nome}");
if (Disponivel)
{
Console.WriteLine("Disponível no plano");
}
else
{
Console.WriteLine("Adquira o plano Plus+");
}
}
}
Só que no meu program, na hora de definir no argumento da criação da nova música, tá dando o seguinte erro com o 3° argumento se referindo ao Genero.
Banda queen = new Banda("Queen");
Album albumDoQueen = new Album("A night at the opera");
Musica musica1 = new Musica(queen, "Love of my life", **"Rock"**)
{
Duracao = 213,
Disponivel = true,
};
Musica musica2 = new Musica(queen, "Bohemian Rhapsody", **"Pop"**)
{
Duracao = 354,
Disponivel = false,
};
 )
albumDoQueen.AdicionarMusica(musica1);
albumDoQueen.AdicionarMusica(musica2);
queen.AdicionarAlbum(albumDoQueen);
musica1.ExibirFichaTecnica();
musica2.ExibirFichaTecnica();
queen.AdicionarAlbum(albumDoQueen);
albumDoQueen.ExibirMusicasDoAlbum();
queen.ExibirDiscografia();
Irei colocar as outras classes (Album e Banda)
Classe album
class Album
{
public Album(string nome)
{
Nome= nome;
}
private List<Musica> musicas = new List<Musica>();
public string Nome { get;}
public int DuracaoTotal => musicas.Sum(m => m.Duracao);
public void AdicionarMusica(Musica musica)
{
musicas.Add(musica);
}
public void ExibirMusicasDoAlbum()
{
Console.WriteLine($"Lista de músicas do álbum {Nome}:\n");
foreach (var musica in musicas)
{
Console.WriteLine($"Música: {musica.Nome}");
}
Console.WriteLine($"Para ouvir este álbum inteiro você precisa de {DuracaoTotal}");
}
}
Classe Banda
class Banda
{
private List<Album> albums = new List<Album>();
public string Nome { get; }
public Banda(string nome)
{
Nome= nome;
}
public void AdicionarAlbum(Album album)
{
albums.Add(album);
}
public void ExibirDiscografia()
{
Console.WriteLine($"Discografia da banda {Nome}");
foreach(Album album in albums)
{
Console.WriteLine($"Álbum: {album.Nome} ({album.DuracaoTotal})");
}
}
}