public override RespostaBase EfetuarSaque(double valor)
        {
            void saque(ContaBase conta, double v) => conta.Saldo -= v;

            if (this.Saldo > 0 && this.Saldo >= valor)
            {
                saque(this, valor);

                Movimentacao mov = new Movimentacao(this, DateTime.Now, valor)
                {
                    Historico = $"Foram sacados R$ { valor }, novo saldo: { this.Saldo }."
                };
                this.Movimentos.Enqueue(mov);

                return(new RespostaBase()
                {
                    Mensagem = "Saque efetuado com sucesso",
                    Sucesso = true
                });
            }
            else
            {
                return(new RespostaBase()
                {
                    Mensagem = "Não há saldo sufiente",
                    Sucesso = false
                });
            }
        }
        public override RespostaBase EfetuarDeposito(double valor)
        {
            void deposito(ContaBase conta, double v) => conta.Saldo += v;

            deposito(this, valor);

            Movimentacao mov = new Movimentacao(this, DateTime.Now, valor)
            {
                Historico = $"Foram depositados R$ { valor }, novo saldo: { this.Saldo }."
            };

            this.Movimentos.Enqueue(mov);

            return(new RespostaBase()
            {
                Mensagem = "Deposito efetuado com sucesso",
                Sucesso = true
            });
        }