1
resposta

[Dúvida] A conta não é adicionada a lista de contas

Olá, andei passando por um problema ao realizar a função de cadastro da conta, a conta simples mente não é adicionada a ArrayList e eu não consegui achar onde pode ficar o possível erro.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Nessa parte, onde está escrito "A Conta 3093700f de foi cadastrada com sucesso!" essa serie de números deveria ser o número da conta e o vão entre o "de" e o "foi" deveria ser o nome do titular

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

na função de lista de conta também mostra que não nenhuma conta na lista.

pedaço do código da função de cadastrar contas:

void CadastrarConta()
{
    Console.Clear();
    Console.WriteLine("===============================");
    Console.WriteLine("===   CADASTRO DE CONTAS    ===");
    Console.WriteLine("===============================");
    Console.WriteLine("\n");
    Console.WriteLine("=== Informe dados da conta ===");
    // Número da conta
    Console.Write("Número da conta: ");
    string numeroDaConta = Console.ReadLine()!;
    // Número da agência
    Console.Write("Número da agência: ");
    int numeroDaAgencia = int.Parse(Console.ReadLine()!);

    ContaCorrente conta = new(numeroDaAgencia, numeroDaConta);

    // Saldo inicial da cota
    Console.Write("Informe o saldo inicial: ");
    conta.Saldo = double.Parse(Console.ReadLine()!);
    // Nome do titular da conta 
    Console.Write("Informe o nome do titular: ");
    conta.Titular.Nome = Console.ReadLine()!;
    // Cpf do titular
    Console.Write("Informe o cpf do titular: ");
    conta.Titular.Cpf = Console.ReadLine()!;
    // Profissão do titual
    Console.Write("Informe a profissão do titular: ");
    conta.Titular.Profissao = Console.ReadLine()!;

    _listaDeContas.Add(conta);

    Console.WriteLine($"A Conta {conta} foi cadastrada com sucesso!");
    Console.ReadKey();
}
1 resposta

Boa tarde, esse 3093700f é o endereço de memória do objeto do tipo ContaCorrente.

Console.WriteLine($"A Conta {conta} foi cadastrada com sucesso!");

nessa linha ele acessa o objeto conta e como não tem nenhum atributo (numeroDaAgencia ou numeroDaConta) para acessar desse objeto, ele retorna apenas esse hashcode. Caso vc quisesse retornar o nome da conta, teria que inserir mais esse atributo na classe e no construtor da conta:

ContaCorrente conta = new(nomeDaConta, numeroDaAgencia, numeroDaConta);

dessa forma na mensagem do ultimo console vc colocaria:

Console.WriteLine($"A Conta {conta.nomeDaConta} foi cadastrada com sucesso!");