Copiei os mesmos códigos da aula, achando que possivelmente tivesse digitado algo errado, mas segue o mesmo erro. Alguém consegue me dar uma luz?
Copiei os mesmos códigos da aula, achando que possivelmente tivesse digitado algo errado, mas segue o mesmo erro. Alguém consegue me dar uma luz?
Boa tarde Felipe, tudo bom?
De acordo com sua imagem o problema está no método ExibeLista
, não está sendo criada a instâncias de algum objeto, você pode postar o código da sua classe ListaDeContasCorrentes
?
No aguardo.
Segue o código professor:
public class ListaDeContasCorrentes
{
private ContaCorrente[] _itens = null;
private int _proximaPosicao = 0;
public ListaDeContasCorrentes(int tamanhoInicial = 5)
{
_itens = new ContaCorrente[tamanhoInicial];
}
public void Adicionar(ContaCorrente item)
{
Console.WriteLine($"Adicionando item na posicao {_proximaPosicao}");
VerificarCapacidade(_proximaPosicao + 1);
_itens[_proximaPosicao] = item;
_proximaPosicao++;
}
private void VerificarCapacidade(int tamanhoNecessario)
{
if (_itens.Length >= tamanhoNecessario)
{
return;
}
Console.WriteLine("Aumentando a capacidade da lista");
ContaCorrente[] novoArray = new ContaCorrente[tamanhoNecessario];
for (int i = 0; i < _itens.Length; i++)
{
novoArray[i] = _itens[i];
}
_itens = novoArray;
}
public void VerificaMaiorSaldo()
{
double maiorSaldo = 0.0;
for (int i = 0; i < _itens.Length; i++)
{
if (!(maiorSaldo > _itens[i].Saldo))
{
maiorSaldo = _itens[i].Saldo;
}
}
Console.WriteLine($"O maior saldo entre as contas é de: {maiorSaldo}");
}
public void Remover(ContaCorrente conta)
{
int indiceItem = -1;
for (int i = 0; i < _proximaPosicao; i++)
{
ContaCorrente contaAtual = _itens[i];
if (contaAtual == conta)
{
indiceItem = i;
break;
}
}
// 0 1 2
//[conta1][conta2][conta4][conta5][null]
for (int i = indiceItem; i < _proximaPosicao - 1; i++)
{
_itens[i] = _itens[i + 1];
}
_proximaPosicao--;
_itens[_proximaPosicao] = null;
}
public void ExibeLista()
{
for (int i = 0; i < _itens.Length; i++)
{
ContaCorrente conta = _itens[i];
Console.WriteLine($" Indice[{i}] = Conta:{conta.Conta} - N° da Agência: {conta.Numero_agencia}");
}
}
public ContaCorrente RecuperarContaNoIndice(int indice)
{
if (indice < 0 || indice >= _proximaPosicao)
{
throw new ArgumentOutOfRangeException(nameof(indice));
}
return _itens[indice];
}
public int Tamanho
{
get
{
return _proximaPosicao;
}
}
public ContaCorrente this[int indice]
{
get
{
RecuperarContaNoIndice(indice);
}
}
}
}
Felipe,
Não consegui simular o erro com o código que vc postou, para mim está tudo Ok. Você tem esse projeto no git? Se sim, posta o link para eu poder baixar aqui.
Att.
Desculpe a demora professor, tive que aprender a usar o git kkkk segue o link: https://github.com/felipekal/alura-csharp-listaDeContasCorrentes
Bom dia Felipe, tudo bom?
Mestre baixei seu projeto e compilando, acusou que estava faltando um return
:
No program.cs eu comentei e deixei somente o método e a chamada para TestaArrayDeContasCorrents()
e rodou belezinha!
Obrigado professor !