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

Modificador out

guilherme.Transfere(200.0, mauricio);

Nessa parte do código não seria necessário o modificador 'out' para conseguir manipular o objeto 'mauricio'?

3 respostas

Oi Guilherme, tudo bom?

A variavel guilherme é uma instancia de Conta:

Conta guilherme = new Conta();
// aqui estamos dizendo que guilherme é do tipo Conta

Nossa classe econta está parecida com:

class Conta
{
    public int numero;
    public string titular;
    public double saldo;

    //atributos agencias e cpf omitidos

    public void Saca(double valor)
    {
        this.saldo -= valor;
    }

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

    //aqui  passamos o valor e a conta de destino
    public void Transfere(double valor, Conta destino)
    {
        this.Saca(valor);
        destino.Deposita(valor);
    }

}

Veja que o método transfere recebe apenas um valor e uma conta. Como mauricio também é uma instancia de conta, não há nenhum problema na linha:

guilherme.Transfere(200.0, mauricio);

Não havendo necessidade de nenhum outro atributo =)

Qualquer problema é só compartilhar.

Abraço!

solução!

Ah sim, o out é para retorno de dados não atribuído, confundi.

Para referência esse link explicando sobre out e ref como modificador https://pt.stackoverflow.com/questions/82630/o-que-s%C3%A3o-os-par%C3%A2metros-out-e-ref

Opa, legal Guilherme =)

Vou fechar esse tópico, caso surja alguma outra duvida é só abrir mais um.

Abraço!