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

[Dúvida] duvida no cadastro da conta em ByteBank atendimento

Bom dia, as aulas são muito boas e estou aprendendo bastante, só fiquei com uma pequena duvida

no atendimento byteBank, quando cadastramos a conta nós digitamos a 'agencia' e a 'conta' e depois instancia o obj conta corrente com esses valores, até aqui blz, mas aí depois digitamos o Titular e o Cpf e o atribuimos direto na variável 'conta.Titular.Nome' e 'conta.titular.Cpf' respectivamente. Não teria que instanciar o 'CLiente' para passar esses valores nele? Porque no cadastro, nós só instanciamos a 'ContaCorrente' e o 'Cliente' sequer foi instanciado. essa e minha dúvida, pois foi atribuido os valores direto em 'conta.Titula.Nome' e 'conta.Titular.Cpf' sem sequer ter instanciado o objeto. Espero que alguém possa me responder, desde já agradeço, obrigado.

Att, Deivid.

3 respostas
solução!

Bom dia Deivid, tudo bom?

Que bom que tem gostado do curso, na definição da classe ContaCorrente temos um construtor que instância a propriedade titular que é do tipo Cliente.


 public ContaCorrente(int numero_agencia,string conta)
        {
            Numero_agencia = numero_agencia;
            Conta = conta;
            Titular = new Cliente();//Aqui
            TotalDeContasCriadas += 1;

        }

        public ContaCorrente(int numero_agencia)
        {
            Numero_agencia = numero_agencia;
            Conta = Guid.NewGuid().ToString().Substring(0, 8);
            Titular = new Cliente();//Aqui
            TotalDeContasCriadas += 1;
        }

Espero que tenha ajudado e, qualquer coisa, estamos à disposição!

Abraços e bons estudos 😄


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Deivid,

Achei um pouco complicado de explicar, mas vou tentar.

A classe Cliente já está embutida dentro da classe ContaCorrente, ...

public class ContaCorrente : IComparable<ContaCorrente>
{
    private int _numero_agencia;

    private string _conta;

    private double saldo;

    public Cliente Titular { get; set; }

...

... então você precisa passar como um objeto Cliente usando o operador "new" (para criar um novo objeto Cliente):

private List<ContaCorrente> _listaDeContas = new()
{
    new ContaCorrente(94, "987321-W") {Saldo=60, Titular = new Cliente("33333", "Marisa")},
    new ContaCorrente(95, "123456-X") {Saldo=100, Titular = new Cliente("11111", "Henrique")},
    new ContaCorrente(95, "951258-X") {Saldo=200, Titular = new Cliente("22222", "Pedro")}
};

Já dentro da função CadastrarConta(), veja que a classe Cliente está dentro da class ContaCorrente e por este motivo, você não precisa instanciar o Cliente, basta instanciar somente a ContaCorrente, isso é automático:

...

ContaCorrente conta = new ContaCorrente(numeroAgencia);

Console.WriteLine($"Numero da conta [NOVA] : {conta.Conta}");

Console.Write("Informe o saldo inicial: ");
conta.Saldo = double.Parse(Console.ReadLine());

Console.Write("Infome nome do Titular: ");
conta.Titular.Nome = Console.ReadLine();

Console.Write("Infome CPF do Titular: ");
conta.Titular.Cpf = Console.ReadLine();

Console.Write("Infome Profissão do Titular: ");
conta.Titular.Profissao = Console.ReadLine();

_listaDeContas.Add(conta);

...

[]'s,

Fabio I.

Opa, obrigado ao André e ao Fabio por me responder tão rapido kkkk, é verdade no construtor da ContaCorrente tem um 'new Cliente', valeu mesmo...