2
respostas

[Dúvida] Erros no código ?

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.

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

2 respostas

Recomendável:

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

Sua forma:

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

Get

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; }

Set

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!