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

Estou com dúvida no curso de C# e Orientação a Objetos, no exercício do capítulo Mão na Massa - Windows Forms.

No formulário fiz...

            Conta conta = new Conta();
            Cliente cliente = new Cliente("Victor");
            conta.Deposita(250.0);
            conta.Numero = 1;

            textoTitular.Text = Convert.ToString(cliente.Nome);
            textoSaldo.Text = Convert.ToString(conta.Saldo);
            textoNumero.Text = Convert.ToString(conta.Numero);

E no botão depositar fiz...

            Conta conta = new Conta();
            string valor = textoValor.Text;
            double valorDeposito = Convert.ToDouble(valor);
            conta.Deposita(valorDeposito);

            textoSaldo.Text = Convert.ToString(conta.Saldo);

Como é mesmo que atualizo o saldo?

2 respostas
solução!

Olá Elias

Na lógica do seu botão de depósito você está instanciando a conta toda vez que o usuário clica no botão.

Para o botão funcionar da forma esperada, tanto o load do formulário quanto o botão de depósito devem utilizar a mesma instância do objeto conta, portanto ele deve ser declarado como atributo do formulário

public partial class Form1 : Form
{
    private Conta conta;

    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        this.conta = new Conta();
        // resto do código inicializa this.conta
        // e mostra as informações de this.conta
    }
    private void button1_Click(object sender, EventArgs e)
    {
        // Aqui você chama o Deposita em this.conta
        // que é a mesma conta inicializada no load
        // do formulário
    }
}

Obrigado autarquia.

        private void Form1_Load(object sender, EventArgs e)
        {
            this.conta = new Conta();
            Cliente cliente = new Cliente("Victor");
            conta.Deposita(250.0);
            conta.Numero = 1;

            textoTitular.Text = Convert.ToString(cliente.Nome);
            textoSaldo.Text = Convert.ToString(conta.Saldo);
            textoNumero.Text = Convert.ToString(conta.Numero);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            string valor = textoValor.Text;
            double valorDeposito = Convert.ToDouble(valor);
            this.conta.Deposita(valorDeposito);

            textoSaldo.Text = Convert.ToString(conta.Saldo);
        }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software