1
resposta

System.NullReferenceException: 'Referência de objeto não definida para uma instância de um objeto.'

Olá, gostaria de saber se para poder atribuir um valor ao titular eu preciso necessariamente instanciar um obejeto da classe Cliente? teria um forma de eu só instanciar a classe ContaCorrente?

gostaria de preencher todos os campos (titular (nome, cpf, profissao), agencia e conta), como eu deveria fazer na classe program para que isso ocorra sem erros de compilação?

Expliquei de 2 formas para melhor entendimento, Obrigado.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;

namespace _01_BedaBank
{
    class ContaCorrente
    {
        public Cliente titular { get;set; }

        public int agencia { get; set; }

        private string _conta;
        public string Conta
        {
            get
            {
                return _conta;
            }
            set
            {
                _conta = value;
            }
        }




        private double _saldo = 100;

        public double Saldo
        {
            get
            {
                return _saldo;
            }
            set
            {
                _saldo += value;
            }
        }
        public bool Sacar(double valor)
        {
            if (_saldo < valor)
            {
                return false;
            }

            _saldo -= valor;
            return true;
        }

        public void Depositar(double valor)
        {
            _saldo += valor;
        }

        public bool Transferir(double valor, ContaCorrente contaDestino)
        {
            if (valor > _saldo)
            {
                return false;
            }
            else
            {
                this._saldo -= valor;
                contaDestino.Depositar(valor);
                return true;
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01_BedaBank
{
    class Cliente
    {
        public string Nome { get; set; }
        public string CPF { get; set; }
        public string Profissao { get; set; }
    }
}
1 resposta

Quando voce efetuar a instancia da classe ContaCorrente, a propriedade Cliente, por estar fazendo referencia a classe Cliente, podera ter seus campos preenchidos. Para isso, dentro de seu main, execute dessa forma

ContaCorrente.Conta1.Cliente.Nome = "Jhonson";
ContaCorrente.Conta1.Cliente.CPF = "000.000.000.000"

E na sua classe ContaCorrente, inicialize um metodo construtor, ja instanciando a classe Cliente, assim:

Public ContaCorrente
{
    cliente = New Cliente();
}

Isso vai fazer com que, toda a vez que a classe ContaCorrente seja chamada, ela instancie automaticamente o seu Cliente, e nao de exception :D

Espero ter ajudado :)