Nesse exercício além dos erros de código não entendi o uso de get / set
Em qual aula foi dado sobre esse termos?
Sei que nome e artista são propriedades da classe Musica, e o método ExibirNomeEArtista() as utiliza para imprimir a informação.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Nesse exercício além dos erros de código não entendi o uso de get / set
Em qual aula foi dado sobre esse termos?
Sei que nome e artista são propriedades da classe Musica, e o método ExibirNomeEArtista() as utiliza para imprimir a informação.
Eu recomendo que você faça um construtor (imagino que ainda não tenha chegado nessa parte), resumindo: ele estará inicializando os objetos classes a partir desta classe.
Coloquei os nomes das propriedades em maiúsculo, sendo a forma correta pelo csharp, vai funcionar de qualquer forma (maiusculo ou minusculo), mas de qualquer forma, fica pela sua escolha.
// Modelos/Musica.cs
class Musica
{
public Musica(string nome, string artista)
{
Nome = nome;
Artista = artista;
}
public string Nome { get; }
public string Artista { get; }
public void ExibirDiscografia()
{
Console.WriteLine($"Música: {Nome}");
Console.WriteLine($"Artista: {Artista}");
}
}
// Program.cs
Musica musica = new Musica("Músical Tal", "Artista Tal");
musica.ExibirDiscografia();
Você pode colocar o "?" no tipo, com isso, você estará garantido que esses dados serão passados corretamente, sem precisa de um construtor para tal feito.
// Modelos/Musica.cs
class Musica
{
public string? nome { get; set; }
public string? artista { get; set; }
public void ExibirDiscografia()
{
Console.WriteLine($"Música: {nome}");
Console.WriteLine($"Artista: {artista}");
}
}
// Program.cs
Musica musica = new Musica();
musica.nome = "Músical tal";
musica.artista = "Artista tal";
musica.ExibirDiscografia();
O { get; } de forma exclusiva para que possa obter valores, quando você informar o nome da música ou artista, quem faz o trabalho de devolver essa informação é o get.
musica.nome = "Música";
Console.WriteLine(musica.nome); // { get; }
O { set; } serve para quando você deseja um valor para um elemento ou propriedade, caso você remova isso, só poderá atribuir valores através do construtor, como fiz acima.
musica.nome = "Música"; // { set; }
Fazer um construtor ? Ainda não cheguei a essa aula, mas então o exercício(Faça como eu fiz) foi antecipado deveria ser colocado mais para o final! Vou assistir todas as aulas e somente no final vou praticar .
Grato pela explicação!