1
resposta

[Projeto] Faça como eu fiz: validação de acesso a filmes

Resolução:

class Filme
{
    public Filme(string titulo, int classificacaoEtaria)
    {
        Titulo = titulo;
        ClassificacaoEtaria = classificacaoEtaria;
    }

    public string Titulo { get; set; }
    public int ClassificacaoEtaria  { get; set; }

    public bool PodeAssistir(int idadeUsuario)
    {
        return idadeUsuario >= ClassificacaoEtaria;
    }

    public void ExibirResultado(int idadeUsuario)
    {
        if (PodeAssistir(idadeUsuario))
        {
            Console.WriteLine($"Usuário com {idadeUsuario} anos pode assistir ao filme {Titulo}.");
        }
        else
        {
            Console.WriteLine($"Usuário com {idadeUsuario} anos não pode assistir ao filme {Titulo}.");
        }
    }
}

program.cs

Console.Clear();
Console.Write("Insira a sua idade: ");
int idade; 
int.TryParse(Console.ReadLine()!, out idade);

var filme1 = new Filme("Mario", 12);

filme1.ExibirResultado(idade);

1 resposta

Oii Christopher, tudo bem?

Obrigada por compartilhar sua resolução no fórum! A separação das responsabilidades ficou muito bem feita: PodeAssistir cuida apenas da lógica booleana, enquanto ExibirResultado lida com a exibição — isso deixa o código mais limpo e fácil de manter.

Uma consideração: o uso de int.TryParse é uma escolha mais robusta do que um simples int.Parse, pois evita exceções quando o usuário digita algo inválido. Vale notar, porém, que no estado atual, se a entrada não for um número, idade ficará com o valor padrão 0 sem nenhum aviso ao usuário. Considere tratar esse caso com uma mensagem, por exemplo:

if (!int.TryParse(Console.ReadLine()!, out idade))
{
    Console.WriteLine("Idade inválida. Por favor, insira um número.");
    return;
}

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade