Bom dia! Sou iniciante em C# e estou seguindo um tutorial de criar contas em banco, o meu código é o seguinte para cadastrar novas contas:
namespace Banco
{
public partial class Form2 : Form
{
private Form1 formPrincipal;
public Form2(Form1 form)
{ //constructor do form2 usando o form1 de entrada
this.formPrincipal = form;
InitializeComponent();
comboTipoConta.Items.Add("Corrente");
comboTipoConta.Items.Add("Poupanca");
comboTipoConta.Items.Add("Investimento");
}
private void botaoCadastrar_Click(object sender, EventArgs e)
{
Conta novaConta;
if (comboTipoConta.Text == "Corrente")
{
ContaCorrente contaCorrente = new ContaCorrente();
novaConta = contaCorrente;
}
if (comboTipoConta.Text == "Poupanca")
{
ContaPoupanca contaPoupanca = new ContaPoupanca();
novaConta = contaPoupanca;
}
//if (comboTipoConta.Text == "Investimento")
else
{
ContaInvestimento investimento = new ContaInvestimento();
novaConta = investimento;
}
novaConta.Numero = Convert.ToInt32(textoNumero.Text);
novaConta.Titular = new Cliente(textoTitular.Text);
novaConta.Deposita(Convert.ToDouble(textoSaldo.Text));
this.formPrincipal.AdicionaConta(novaConta);
MessageBox.Show("Conta cadastrada");
}
}
}
Em que esses 3 tipos de contas são herança da classe
abstrata Conta.
O problema é que se eu não comentar o ultimo if o código não compila e diz que novaConta não foi instanciado, mas se eu deixar como else compila normalmente.
Não posso instanciar uma Conta antes pq é uma classe abstrata.
Qual a forma correta de instanciar essas classes nessa situação?
Muito obrigado de imediato.