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

Usando o Método booleano EhMaiorIdade

Bom dia, estou tentando usar o método EhMaiorIdade criado dentro da classe cliente, mas aparece sublinhando e não consigo compreender onde estou errando.

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

USANDO O MÉTODO:

Conta umaConta = new Conta();
            umaConta.cliente = victor;
            umaConta.cliente.idade = 17;

umaConta.cliente.EhMaiorDeIdade(umaConta.cliente.idade);

E a utilização do método (umaConta.cliente.EhMaiorDeIdade(umaConta.cliente.idade);) fica aparecendo sublinhado informando o seguinte erro:

1 - Argument 1: cannot convert from  'int' to             'Review_Conta.Cliente'.
2 - The best overloaded method match for 'Review_Conta.Cliente.EhMaiorIdade(Review_Conta.Cliente)' has some invalid arguments.

Quero fazer funcionar....já vi a resposta do instrutor para o exercício e não vi nela a utilização do método e sim apenas a criação do mesmo.

Obrigado, Isaac

2 respostas

Oi Isaac,

Veja só. Olha a assinatura do método EhMaiorDeIdade que vc escreveu na classe Cliente:

public bool EhMaiorDeIdade(Cliente cliente)

Ou seja, ele recebe um Cliente como parâmetro. Mas não precisamos disso, afinal o método já está dentro dessa classe. Seu método deve ser assim:

public bool EhMaiorDeIdade()
    {
        if (idade >= 18)
            return true;
        else
            return false;
    }

E aí, pra invocá-lo, é fácil, basta ter uma instância de Cliente na mão:

umaConta.cliente.EhMaiorDeIdade();

Entendeu? Perceba que, se o método é colocado dentro da classe Cliente, ele não precisa receber o próprio Cliente como parâmetro!

Entendeu?

Um abraço!

solução!

Show de bola...caiu a ficha, fui acompanhando o exercício e não percebi que estava colocando Cliente dentro da própria classe!

Então chamei o método que avalia se a idade é ou não maior que ou igual a 18 e grava o valor, depois consegui recuperar o valor do bool numa MessageBox.Show pra ter ctz de que estava com a lógica correta demonstrando se o cliente pode ou não abrir a conta:

umaConta.cliente.idade = 19; umaConta.cliente.EhMaiorDeIdade();

if (umaConta.cliente.EhMaiorDeIdade()) { MessageBox.Show("Ebaaa, pode abrir conta"); } else { MessageBox.Show("Puts cara, volte mais tarde"); }

O resultado da MessageBox.Show a condição verdadeira.

Agradeço a força!

Forte abraço!