1
resposta

Pq {Artista.Nome} para exibir nome da Banda?

Na classe Musica temos o atributo Artista associado ao tipo (classe) Banda. --> public Banda Artista {get;}

Criou-se o construtor de Musica passando (Banda artista, string nome) {...};

Não entendi como pode sair no console: "Artista: Queen" se passamos um valor Console.Writeline($"Artista: {Artista.Nome}");

Como pode chamar o valor {Artista.Nome} se em momento algum passamos valor do atributo {Artista.Nome}? Minha dúvida é que o Artista está associado ao tipo Banda (classe) e não ao tipo string nome.

1 resposta

Olá Pedro!

Entendo a sua dúvida. O valor {Artista.Nome} está sendo exibido no console porque ele está sendo acessado através do objeto Artista da classe Musica.

No construtor da classe Musica, quando você passa o objeto Banda como argumento, você está associando esse objeto à propriedade Artista da classe Musica. E como a propriedade Artista é do tipo Banda, você pode acessar as propriedades da classe Banda através do objeto Artista.

Dessa forma, ao chamar Console.WriteLine($"Artista: {Artista.Nome}"), você está acessando a propriedade Nome da classe Banda através do objeto Artista.

Por exemplo, se você tiver o seguinte código:

Banda banda = new Banda("Queen");
Musica musica = new Musica(banda, "Bohemian Rhapsody");
Console.WriteLine($"Artista: {musica.Artista.Nome}");

A saída no console será: "Artista: Queen".

Espero ter esclarecido a sua dúvida. Se tiver mais alguma pergunta, é só me dizer!

Espero ter ajudado e bons estudos!