Os campos de texto não printam os valor e tambem ao tentar realizar um deposito,aparece a seguinte exception -> NullReferenceException
Os campos de texto não printam os valor e tambem ao tentar realizar um deposito,aparece a seguinte exception -> NullReferenceException
Oi Lucas, tudo bom?
Você pode compartilhar com a gente seu código? Assim fica mais facil de ajudar =)
Aguardo retorno.
Abraço
private Conta conta;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.conta = new Conta();
this.conta.deposita(250.0);
this.conta.Numero = 1;
this.conta.Titular = new Cliente();
this.conta.Titular.Nome = "Victor";
this.conta.Numero = 1;
this.conta.deposita(250.0);
this.mostraConta();
}
private void Depositar_Click(object sender, EventArgs e)
{
string textoDoValorDoDeposito = textoValor.Text;
double valorDeposito = Convert.ToDouble(textoDoValorDoDeposito);
this.conta.deposita(valorDeposito); // <- O problema é apontado aqui//
this.mostraConta();
}
public void mostraConta()
{
textoNumero.Text = Convert.ToString(this.conta.Numero);
textoSaldo.Text = Convert.ToString(this.conta.Saldo);
textoTitular.Text = this.conta.Titular.Nome;
}
private void button2_Click(object sender, EventArgs e)
{
string textoDoValorDoSaque = textoValor.Text;
double valorSaque = Convert.ToDouble(textoDoValorDoSaque);
this.conta.saca(valorSaque);
this.mostraConta();
}
}
}
Segundo o código desse capitulo, temos:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CaixaEletronico
{
public partial class Form1 : Form
{
Conta conta;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.conta = new Conta();
this.conta.Titular = new Cliente();
this.conta.Titular.Nome = "Victor";
this.conta.Numero = 1;
this.conta.Deposita(250.0);
this.MostraConta();
}
private void button1_Click(object sender, EventArgs e)
{
string textoDoValorDoDeposito = textoValor.Text;
double valorDeposito = Convert.ToDouble(textoDoValorDoDeposito);
this.conta.Deposita(valorDeposito);
this.MostraConta();
}
private void button2_Click(object sender, EventArgs e)
{
string textoDoValorDoSaque = textoValor.Text;
double valorSaque = Convert.ToDouble(textoDoValorDoSaque);
this.conta.Saca(valorSaque);
this.MostraConta();
}
private void MostraConta()
{
textoTitular.Text = conta.Titular.Nome;
textoSaldo.Text = Convert.ToString(conta.Saldo);
textoNumero.Text = Convert.ToString(conta.Numero);
}
}
}
Mas, não consigo encontrar nenhum problema evidente. Talvez você consiga enxergar alguma diferença.
Entretanto, se temos NullReferenceException nessa linha:
this.conta.deposita(valorDeposito); // <- O problema é apontado aqui//
Significa que a conta do seu formulário está vazia:
this.conta // esse cara está nulo
Caso não haja nenhum problema de digitação que eu não peguei, significa que o form1_load não está sendo invocado. Para garantir, tenta adicionar um MessageBox.Show no form1_load, para ver se está realmente passando por lá. Algo como:
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("Entrou!");
this.conta = new Conta();
this.conta.deposita(250.0);
this.conta.Numero = 1;
this.conta.Titular = new Cliente();
this.conta.Titular.Nome = "Victor";
this.conta.Numero = 1;
this.conta.deposita(250.0);
this.mostraConta();
}