Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida objetos e metodos.

Seguinte, eu estou tentando atribuir dentro da classe além de uma variável do tipo bool uma variavel do tipo string ("Cliente maior de idade"ou"Cliente menor de idade") pra guardar a informação se o cliente é maior ou não. Dentro do código do formulário é bem fácil fazer utilizando o if, só que queria inserir isso dentro da classe, só que não estou conseguindo, o objetivo, é que se precisar mostra a informação no messageBox.Show só preciso indicar a string, no lugar de por um if toda vez. ta aqui um dos cogidos que tentei utilizar mas não deu certo, da um help AEW.

 class Cliente
    {
        public string nome;
        public string rg;
        public int idade;
        public string maiorescrito;
        public bool maior()
        {

            return this.idade >= 18;
            if(this.maior())
            {
                this.maiorescrito = "É maior de idade";

            }
            else
            {
               this.maiorescrito = "Não é maior de idade";
            }

        }



    }
2 respostas

Oi George,

Você está colocando o return antes dos ifs... Você não pode ter nenhuma instrução depois de um return... o motivo é que vc já vai ter dado o retorno do método.

solução!

Oi George, tem 2 erros no seu código:

  1. O return deve sempre ser a última instrução de um método, pois após ele o método termina e segue a pilha de execução, ou seja, retorna para o código que o chamou.

  2. Você está chamando recursivamente o método "maior" dentro dele próprio, isso vai gerar um loop infinito.

Também, como recomendação para melhorar a compreensão do seu código, o ideal é que o nome do método diga o que ele está fazendo. No seu caso, esse método testa se é maior de idade.

Sugiro as seguintes alterações:

public bool EhMaiorDeIdade()
{
    bool ehMaior = this.idade >= 18;
    if (ehMaior)
    {
        this.maiorescrito = "É maior de idade";
    }
    else
    {
        this.maiorescrito = "Não é maior de idade";
    }
    return ehMaior;
}