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

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

Não roda, ao realizar um Debug ele para a execução na linha " conta1.Titular.nome = "Marcos Henrique"; ", abre o Form e não faz mais nada. Testei trocar o tipo Cliente para uma String e mesmo assim fica na mesma, porem se usar o campo numero ou saldo funciona .Já quebrei a cabeça e nada, será que alguém enxerga o que eu não estou vendo?

private void Form1_Load(object sender, EventArgs e){

            Conta conta1 = new Conta();
            conta1.Numero = 100;
            conta1.Titular.nome = "Marcos Henrique";
            conta1.depositar(1500);

            Conta conta2 = new Conta();
            conta2.Numero = 200;
            conta2.Titular.nome = "Raul Andrade";
            conta2.depositar(500);

            this.contas = new Conta[2];
            this.contas[0] = conta1;
            this.contas[1] = conta2;

            foreach (Conta conta in this.contas)
            {
                comboContas.Items.Add(conta.Titular.nome);
            }

        }

private void comboContas_SelectedIndexChanged(object sender, EventArgs e){

            int indice = comboContas.SelectedIndex;
            Conta itemConta = contas[indice];

            textoNumero.Text = Convert.ToString(itemConta.Numero);
            textoTitular.Text = Convert.ToString(itemConta.Titular.nome);
            textoTitular.Text = Convert.ToString(itemConta.Saldo);

}
3 respostas

Como está a sua classe Conta e sua Classe Cliente, poderia cola o código?

Acredito que você não está instanciando a classe Cliente na Classe Conta na propriedade Titular. Você tem que instanciar a classe Cliente para conseguir atribuir o valor na propriedade nome.

Caro Alessandro,

Certin, eu estava esquecendo de instanciar um cliente e apontar para Titular do cliente da Conta. Veja:

Conta conta1 = new Conta();
Cliente cliente1 = new Cliente();
conta1.Titular = cliente1;
conta1.Titular.nome = "Marcos Henrique";

Obrigado!

solução!

Isso mesmo Marcos

O formulário abriu sem nenhuma informação pois estamos executando o código dentro do visual studio com a tecla F5 (modo Debug). Nesse modo, os erros do método Load do formulário são ignorados na execução.

Quando temos algum erro estranho desse tipo, podemos verificar se o código está correto rodando o programa com a combinação +, com isso, o programa é executado em modo release e se tivermos algum erro no load, o programa será interrompido e o visual studio mostrará qual é a linha que causou o erro.