No meu codigo estou precisando de inserir o nome no titular "contaDoVitor.Titular.Nome = "Victor";" quando compila aparece o NullReferenceException was unhandled.
Como faço para corrigir? pois não esta ficando da mesma forma que foi explicado no exercício.
public partial class Form1 : Form
{
private Conta [] conta;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Conta contaDoVitor = new Conta();
contaDoVitor.Titular.Nome = "Victor";
contaDoVitor.Numero = 1;
contaDoVitor.deposita(2500.0);
Conta contaDoMario = new Conta();
contaDoVitor.Titular.Nome = "Mario";
contaDoVitor.Numero = 2;
contaDoVitor.deposita(2800.0);
this.conta = new Conta[2];
this.conta[0] = contaDoVitor;
this.conta[1] = contaDoMario;
foreach (Conta c in conta)
{
comboContas.Items.Add(c.Titular);
}
}
private void btExecutar_Click(object sender, EventArgs e)
{
int indexContaDepositar = comboContas.SelectedIndex;
Conta contaDepositar = conta[indexContaDepositar];
contaDepositar.deposita(Convert.ToDouble(textoValor.Text));
MostraConta(contaDepositar);
textoValor.Clear();
}
private void MostraConta(Conta indiceSelecionado)
{
textoTitular.Text = indiceSelecionado.Titular.Nome;
textoSaldo.Text = Convert.ToString(indiceSelecionado.Saldo);
textoNumero.Text = Convert.ToString(indiceSelecionado.Numero);
}
private void BtSacar_Click(object sender, EventArgs e)
{
int indexContaSacar = comboContas.SelectedIndex;
Conta contaSacar = conta[indexContaSacar];
contaSacar.saca(Convert.ToDouble(textoValor.Text));
MostraConta(contaSacar);
textoValor.Clear();
}
private void comboContas_SelectedIndexChanged(object sender, EventArgs e)
{
int indiceSelecionado = comboContas.SelectedIndex;
Conta contaSeleconada = conta[indiceSelecionado];
MostraConta(contaSeleconada);
}
}
class Conta
{
public int Numero { get; set; }
public Cliente Titular { get; set; }
public int Agencia { get; set; }
public double Saldo { get; protected set; }
public double CalculaRendimentoAnual()
{
double saldoNaqueleMes = this.Saldo;
for (int i = 0; i < 12; i++)
{
saldoNaqueleMes = saldoNaqueleMes * 1.007;
}
double rendimento = saldoNaqueleMes - this.Saldo;
return rendimento;
}
public bool saca(double valorASacar)
{
if (valorASacar > this.Saldo || valorASacar < 0)
{
return false;
}
else if (Titular.EhMaiorDeIdade())
{
this.Saldo -= valorASacar;
return true;
}
else if (valorASacar <= 200.00)
{
this.Saldo -= valorASacar;
return true;
}
else
{
return false;
}
}
public virtual void deposita(double valorADepositar)
{
if (valorADepositar >= 0)
{
this.Saldo += valorADepositar;
}
}
public void transfere(double valorTransferido, Conta destino)
{
this.saca(valorTransferido);
destino.deposita(valorTransferido);
}
}
class Cliente
{
public string Nome { get; set; }
public string Rg { get; set; }
public string Cpf { get; set; }
public string Endereco { get; set; }
public int Idade { get; set; }
public bool EhMaiorDeIdade()
{
return this.Idade >= 18;
}
public Cliente(string nome)
{
this.Nome = nome;
}
public Cliente()
{
}
}