1
resposta

[Dúvida] Conta Bancária

Fiquei meio perdido mas vi alguns códigos no fórum e me ajudou

Titular.cs

class Titular
{
    public string Nome { get; set; }
    public int Idade { get; set; }
}

Conta.cs

using System;

class Conta
{
    private List<Titular> clientes = new List<Titular>();
    public int Agencia { get; set; }
    public int NumeroConta { get; set; }
    public decimal Saldo => 4593.00m;
    public decimal Limite => 10000.00m;

    public void AdicionarCliente(Titular cliente)
    {
        clientes.Add(cliente);
    }

    public void DetalhesConta()
    {
        foreach (var cliente in clientes)
        {
            Console.WriteLine($"Cliente: {cliente.Nome}");
            Console.WriteLine($"Idade: {cliente.Idade}");
            Console.WriteLine($"Conta:: {NumeroConta}");
            Console.WriteLine($"Agncia:: {Agencia}");
            Console.WriteLine($"Saldo: {Saldo}");
            Console.WriteLine($"Limite: {Limite}");
        }
    }
}

Program.cs

Conta contaBancaria = new Conta();

contaBancaria.Agencia = 23006;
contaBancaria.NumeroConta = 1;


Titular titular1 = new Titular();

titular1.Nome = "Matheus";
titular1.Idade = 26;

contaBancaria.AdicionarCliente(titular1);

contaBancaria.DetalhesConta();
1 resposta

Oi, Matheus.

Fico feliz que você tenha buscado apoio no fórum para avançar. Olhar o código de colegas é uma ótima maneira de aprender novas formas de resolver o mesmo problema.

Preparei alguns pontos pra te ajudar a entender melhor o que você construiu e como deixar seu código ainda mais alinhado com o que o desafio pediu.

No seu código, você criou uma lista de clientes dentro da conta:
private List<Titular> clientes = new List<Titular>();

Isso significa que uma única conta pode ter vários titulares (como uma conta conjunta). Embora esteja correto tecnicamente, o desafio propunha algo um pouco mais simples: que cada conta tivesse um titular.

Dica pedagógica: Pra modelar que uma conta pertence a apenas uma pessoa, você pode usar uma propriedade direta em vez de uma lista:
public Titular Titular { get; set; }

Propriedades somente leitura

Notei que você definiu o Saldo e o Limite com valores fixos:
public decimal Saldo => 4593.00m;

Em C#, essa sintaxe cria uma propriedade que sempre retornará esse valor. Se você quiser que o saldo mude (ao fazer um depósito, por exemplo), o ideal é usar as propriedades automáticas que você já usou no Nome:
public decimal Saldo { get; set; }

O seu método DetalhesConta tá muito bom! Ele percorre a lista e exibe tudo de forma organizada. Uma pequena sugestão de melhoria na escrita (strings) para evitar a repetição de dois pontos:

  • Onde está: Console.WriteLine($"Conta:: {NumeroConta}");
  • Pode ser: Console.WriteLine($"Conta: {NumeroConta}");

Se você quisesse simplificar para um único titular, o seu Program.cs ficaria assim:

Conta contaBancaria = new Conta();
Titular titular1 = new Titular();

titular1.Nome = "Matheus";
titular1.Idade = 26;

// Atribuindo o titular diretamente à conta
contaBancaria.Titular = titular1; 

Você está no caminho certo! Usar o fórum para se inspirar faz parte do processo de aprendizagem de qualquer pessoa desenvolvedora.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!