1
resposta

Poderia "sacar" para depositar?

Eu aproveitei da validação que o método Sacar tem para deixar mais limpo o método de Transferir. O ideal seria lançar uma exceção, mas o retorno booleano ajudou a validar.

public class ContaCorrente
{
    public string titular;
    public string numeroAgencia;
    public string numeroConta;
    public double saldo;

    public bool Sacar(double valor)
    {
        if (this.saldo < valor)
        {
            return false;
        }

        this.saldo -= valor;
        return true;
    }

    public void Depositar(double valor)
    {
        this.saldo += valor;
    }

    public bool Transferir(double valor, ContaCorrente contaDestino)
    {
        bool sucesso = this.Sacar(valor);

        if (!sucesso)
        {
            return false;
        }

        contaDestino.Depositar(valor);

        return true;
    }
}
1 resposta

É sempre bom utilizar código já feito para economizar trabalho!