Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida com relação ao funcionamento do Saldo

Não consigo entender como o if de bloquear saldo negativo funciona:


private double _saldo = 100;

public double Saldo
        {
            get
            {
                return _saldo;
            }
            set
            {
                if (value < 0)
                {
                    return;
                }

                _saldo = value;
            }
        }

o valor recebido (value) que está sendo checado, não deveria ser um código que verifique se o valor recebido mais o saldo é menor que zero?

Obs: testei o código e funciona como deveria, mas não consigo entender essa parte.

1 resposta
solução!

Olá Rage,

No caso do setter da propriedade publica saldo ele está verificando o valor de atribuição dessa propriedade, semelhante quando você faz uma atribuição em alguma variável, ela não vai guardar o estado anterior.

Exemplo:

int  idade = 15; // Defini a variável e atribui o valor
idade = 30; // Fiz uma nova atribuição, o valor anterior não está sendo tratado

// Com um objeto complexo
var objeto = new Objeto();
objeto.saldo = 100; // passou no setter da propriedade e atribuiu o valor de 100;
objeto.saldo = -100;  //fui bloqueado no setter da propriedade

objeto.saldo = 150; // alterei o valor anterior para 150, o anterior não importa;

objeto.saldo += 100; // estou somando o estado anterior com mais 100 usando o operador +=, repare que o controle dessa soma é de minha responsabilidade, o valor da propriedade saldo vai ser de 250

//outra forma de somar o estado anterior com um novo valor

objeto.saldo = objeto.saldo + 100;

Abs