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

Execício sobre Remover contas C#avançado.

Eu tentei fazer o execício, só que o programa roda, mas quando aperto o botão que seria o responsável para deletar a conta, aparece um erro, e o compilador mostra uma linha em especifico do meu programa, mas eu nao acho o erro, utilizei até mesmo a solução sugerida no exercício, e mesmo assim esse erro aparece. a linha apontada como o erro é essa

        private void button2_Click(object sender, EventArgs e)
        {
            Conta[] novo = new Conta[qtdConta * 2];
            int i=0;
            while (i < indiceSelecionado)
            {
                novo[i] = contas[i];
                i++;
            }
            while (i < qtdConta)
            {
                novo[i] = contas[i + 1]; //linha apontada com o erro!!!
                i++;
            }
            contas = novo;

            foreach (Conta c in contas)
            {
                comboContas.Items.Add(c.cliente.Titular);
                comboTransferencia.Items.Add(c.cliente.Titular);
            }
6 respostas

Verifica se assim funciona:

private void button2_Click(object sender, EventArgs e)
        {
            //-- Exclusão vai reduzir o tamanho, então subtrai 1
            qtdConta -= 1

            Conta[] novo = new Conta[qtdConta];

            int i=0;
            int contadorNovo = 0;

            //-- Rodar todas as contas até chegar no selecionado
            while (i < indiceSelecionado)
            {
                novo[contadorNovo] = contas[i];
                i++;
                contadorNovo++;
            }

            //-- Definir o inicio como o selecionado +1 para ignorar o selecionado
            i = indiceSelecionado +1;

            //-- Verificar se existe algo a ser adicionado ainda
            if (i <= qtdConta )
            {

                //-- Rodar todas as contas até chegar ao final
                while (i < qtdConta)
                {
                    novo[contadorNovo] = contas[i];
                    i++;
                    contadorNovo++;
                }

            }

            contas = novo;

            foreach (Conta c in contas)
            {
                comboContas.Items.Add(c.cliente.Titular);
                comboTransferencia.Items.Add(c.cliente.Titular);
            }

Qualquer dúvida pode pegar o código no meu Github

https://github.com/sambomb/Exercicios_Alura

Não Funcionou, só que o problema ocorreu mais a frente, na hora de escrever as informações no comboContas, ta dizendo, que a array esta nula.

Onde?

Escrevi "Nessa Linha" na linha do erro

private void button2_Click(object sender, EventArgs e)
        {
            //-- Exclusão vai reduzir o tamanho, então subtrai 1
            qtdConta -= 1

            Conta[] novo = new Conta[qtdConta];

            int i=0;
            int contadorNovo = 0;

            //-- Rodar todas as contas até chegar no selecionado
            while (i < indiceSelecionado)
            {
                novo[contadorNovo] = contas[i];
                i++;
                contadorNovo++;
            }

            //-- Definir o inicio como o selecionado +1 para ignorar o selecionado
            i = indiceSelecionado +1;

            //-- Verificar se existe algo a ser adicionado ainda
            if (i <= qtdConta )
            {

                //-- Rodar todas as contas até chegar ao final
                while (i < qtdConta)
                {
                    novo[contadorNovo] = contas[i];
                    i++;
                    contadorNovo++;
                }

            }

            contas = novo;

            foreach (Conta c in contas)
            {
                comboContas.Items.Add(c.cliente.Titular); //Nessa linha
                comboTransferencia.Items.Add(c.cliente.Titular);
            }
solução!

Coloca isso antes

If (comboContas==null){
comboContas = new Conta[qtdeConta];
}

Ficou bem confuso mas agora parece ter funcionado, obrigado!!.