Sinto que isso tem haver com os endereços de memória né?
O código desse exercício foi esse:
ContaCorrente contaBruno = new ContaCorrente();
contaBruno.titular = "Bruno";
contaBruno.Depositar(500);
Console.WriteLine("Conta Bruno: " + contaBruno.saldo);
ContaCorrente contaGabriela = new ContaCorrente();
contaGabriela.titular = "Gabriela";
bool resultadoTransferencia = contaBruno.Transferir(77, contaGabriela);
Console.WriteLine("Conta Bruno: " + contaBruno.saldo);
Console.WriteLine("Conta Gabriela: " + contaGabriela.saldo);
Minha dúvida é sobre esse trecho:
bool resultadoTransferencia = contaBruno.Transferir(77, contaGabriela);
Aqui foi criado uma variável chamada "resultadoTransferencia" que aparentemente deveria apenas dizer se algo é true ou false (por ser um bool), mas em nenhum momento estaria explicitamente mandando rodar aquelas funções ali dentro e alterar valores.
contaBruno.Transferir(77, contaGabriela);
Ok aqui me parece que esta explicitamente mandando o compilador rodar essa função "Transferir" quando ler essa linha, mas no outro caso ali era só uma variável guardando informação.
Pelo que estou percebendo quando se mexe com objeto não pode nem guardar algo dentro de uma variável/função para usar depois, a partir do momento que o compilador ler aquilo ele já vai aplicar as alterações e já era?
Fiz uma variável de teste aqui na intenção de "zerar a conta pra fazer outros testes" que foi essa aqui:
double assalto = (contaBruno.saldo = 0);
Console.WriteLine("Conta Bruno: " + contaBruno.saldo);
contaBruno.saldo = assalto;
Console.WriteLine("Conta Bruno: " + contaBruno.saldo);
Mas antes mesmo se explicitamente mandar rodar ali na segunda parte ele já tinha zerado a conta e deu 2 zero seguidos.
Eu não posso simplesmente guardar informação dentro de uma variável para usar só quando eu quiser?