2
respostas

Posso inserir um IF no método

Tudo bem que não é o passo mais curto para resolver o problema, mas fiquei com dúvida se não seria igual descrever assim:

class Cliente { public string nome; public string rg; public string cpf; public string endereco; public int idade;

public void ehmaiordeidade(bool recebenumero) { if(idade >= 18) { recebenumero = true; return; }

}

}

2 respostas

Opa, tudo bom Janio?

Seguinte cara, no exercício o professor cria um método booleano public bool EhMaiorDeIdade() que por sua vez retorna o resultado de uma expressão booleana return this.idade >= 18; na sua pergunta, você cria um método void e retorna, mas o metodo do tipo public void () não retorna nada, segue a logica, um metodo tipo int retorna um valor int, um metodo tipo bool, retorna um valor bool, e por sua vez um metodo tipo void não retorna nada, pegou?

Olha só o exercício do professor:

 class Cliente
{
    // outros atributos da classe
    public int idade;

    public bool EhMaiorDeIdade()
    {
        return this.idade >= 18;
    }
}

Respondendo a sua duvida sobre o if, ao invés de criar um método booleano que retorna true ou false, poderíamos criar sim um laço if, da seguinte maneira:

 class Cliente
{
    // outros atributos da classe
    public int idade;
    public bool EhMaiorDeIdade;
    if(this.idade => 18)
    {
    EhMaiorDeIdade = true;
    }
    else
    {
    EhMaiorDeIdade = false;
    }
}

Embora como você disse não seria a melhor maneira de se resolver o problema, mas também mesmo criando uma variável booleana, o if ainda não seria a solução porque pode se assimilar um valor a variável diretamente em sua criação, como no seguinte:

 class Cliente
{
    // outros atributos da classe
    public int idade;
    public bool EhMaiorDeIdade = this.idade >= 18;
}

Neste ultimo exemplo a condição this.idade >= 18 terá seu resultado (true ou false) assimilado a variável booleana EhMaiorDeIdade

Espero ter ajudado :D

Janio, resta alguma duvida ?