Boa tarde a todos ! Vi em um exercicio anterior que funcionou da forma que meu código está atualmente ...
FORM2.CS
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 ClienteConta
{
public partial class Form2 : Form
{
Conta [] contas;
/*private Conta conta;
ContaPoupanca c4 = new ContaPoupanca();*/
public Form2()
{
InitializeComponent();
}
protected void Form2_Load_1(object sender, EventArgs e)
{
Conta contaAlex = new Conta();
// EIS MINHA DÚVIDA
contaAlex.Titular = new Cliente();
contaAlex.Titular.Nome = "Alex";
contaAlex.Numero = 1;
this.contas = new Conta[2];
contas[0] = contaAlex;
comboContas.Items.Add(contaAlex.Titular.Nome);
textoTitular.Text = contaAlex.Titular.Nome;
textoNumero.Text = Convert.ToString(contaAlex.Numero);
textoSaldo.Text = Convert.ToString(contaAlex.Saldo);
/*
foreach(Conta conta in contas)
{
comboContas.Items.Add(conta.Titular.Nome);
}
*/
}
private void btEnviar_Click_1(object sender, EventArgs e)
{
/* c4.Titular.Nome = "Alex";
String Sacar = textoValor.Text;
String Saldo = textoSaldo.Text;
//conta.depositarValor(Convert.ToDouble(Saldo));
// conta.sacarValor(Convert.ToDouble(Sacar));*/
}
private void button2_Click_1(object sender, EventArgs e)
{
// MessageBox.Show("Saldo: " + conta.Saldo);
}
private void button1_Click(object sender, EventArgs e)
{
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}
CONTA.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClienteConta
{
class Conta
{
public Cliente Cliente { get; set;}
public int Numero { get; set; }
//Cliente Titular Criado
public Cliente Titular { get; set; }
public double Saldo { get; protected set; }
public bool sacarValor(double valor)
{
if (valor < 0 || valor > this.Saldo)
{
return false;
}
else
if (this.Titular.EhMaiorDeIdade)
{
Saldo -= valor;
return true;
}
else
if (valor <= 200)
{
Saldo -= valor;
return true;
}
else
{
return false;
}
}
public virtual void depositarValor(double valor)
{
this.Saldo += valor;
}
public void transferirValor(double valor, Conta ContaDestino)
{
this.sacarValor(valor);
ContaDestino.depositarValor( valor);
}
public void preencherContas(Conta Conta1,Conta Conta2) {
//preenchendo conta
Conta2.Saldo = 1000000;
Conta1.Saldo = 200;
Conta1.Numero = 2525;
}
}
}
Ali onde comentei "EIS MINHA DÚVIDA" não entendi a necessidade da criação do novo cliente em contaAlex.Titular. Ja que na classe cliente conta fui criado um Titular do tipo Cliente. E no exemplo o professor consegue atribuir a contaNome.Titular = "UMA STRING" como isso é possível ? Quando faço isso já ocorre um erro referente ao valor receber null como resposta e contaNome.Titular é um objeto, como foi possível atribuir uma string ?;