2
respostas

System.NullReferenceException:

Meu código esta dando esse erro: System.NullReferenceException: 'Referência de objeto não definida para uma instância de um objeto.' Classe Conta

 class Conta
    {
        public int numero;

        public double saldo;

        public Cliente titular;

        public bool Saca(double valor)
        {
            if (saldo < 0 || valor > this.saldo)
            {
                 return false;     
            }
            else
            {
                if (this.titular.maiorDeIdade())
                {
                    this.saldo -= valor;
                    return true;
                }
                else
                {
                    if(valor <= 200)
                    {
                        this.saldo -= valor;
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
        }

Formulário:

Conta contaGuilherme = new Conta();
            contaGuilherme.numero = 1;
            contaGuilherme.saldo = 1500.0;

            Cliente clienteGuilherme = new Cliente();
            clienteGuilherme.nome = "Guilherme";
            clienteGuilherme.idade = 18;

            contaGuilherme.titular = clienteGuilherme;

            bool sacou = contaGuilherme.Saca(300.0);//testando idade
            if (sacou)
            {
                MessageBox.Show("Saldo da Conta do Guilherme após saque: " + contaGuilherme.saldo);
            }
            else
            {
                MessageBox.Show("Não foi possível sacar da conta do Guilherme");
            }
2 respostas

Olá, Gabriel

Que bom que continua tirando suas dúvidas!

Não encontrei nenhum erro ao executar o código mas eu tive que criar um classe Cliente, já que não colocou ela no post.

Fiz da seguinte forma:

    public class Cliente
    {
        public string nome;
        public int idade;

        public bool maiorDeIdade()
        {
            if (this.idade >= 18)
            {
                return true;
            }
            return false;
        }
    }

Posta ai como está sua classe Cliente para verificar como está.

Pelo que eu vi faltou um return false, mas mesmo eu alterando ainda não funcionou, o problema acusa no public bool Saca, na hora do


if (this.titular.maiorDeIdade())
{
    this.saldo -= valor;
    return true;
}

o erro diz : Referência de objeto não definida para uma instância de um objeto. Segue abaixo a classe cliente:

 public class Cliente
    {
        public string nome;

        public int idade;

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

        public string rg;

        public string cpf;

        public string endereco;
    }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software