Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Faça como eu fiz: o poder do encapsulamento

namespace ScreenSound.Modelos;
internal class Avaliacao {
    public Avaliacao(int nota) {
        if (nota >= 10) Nota = 10;
        else if (nota <= 0) Nota = 0;
        else Nota = nota;
    }
    public int Nota { get;}
    
    public override string ToString() {
        return $"{Nota}";
    }
    public static Avaliacao Parse(string texto)  {
        int nota = int.Parse(texto);
        return new Avaliacao(nota);
    }
}
1 resposta
solução!

Oi, Diego! Como vai?

Achei bem interessante a forma como você aplicou encapsulamento ao garantir que a propriedade Nota só possa ser definida dentro do construtor. Isso evita que valores inválidos sejam atribuídos diretamente e mantém a regra de negócio bem protegida dentro da classe. Também ficou bem legal incluir o método Parse, pois ele facilita a criação de objetos Avaliacao a partir de texto.

Uma dica interessante para o futuro é usar o metodo int.TryParse para evitar erros caso o texto nao seja um numero valido. Veja este exemplo:


string texto = "8";
if (int.TryParse(texto, out int nota))
{
    Avaliacao avaliacao = new Avaliacao(nota);
    Console.WriteLine(avaliacao);
}

Esse codigo tenta converter o texto para numero com seguranca. Se a conversao funcionar, ele cria o objeto Avaliacao e imprime a nota.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!