Toda vez que tento copilar o codigo da uma exceção IndexOutOfRange. Já revisei o código e ainda não entendi o erro.
private ContaCorrente[] _itens;
private int _proximaPosicao;
public ListaContaCorrente(int capacidadeInicial = 5)
{
_itens = new ContaCorrente[capacidadeInicial];
_proximaPosicao = 0;
}
public void Adicionar(ContaCorrente item)
{
VerificarCapacidade(_proximaPosicao + 1);
Console.WriteLine($"Adicionar item na posição {_proximaPosicao}");
_itens[_proximaPosicao] = item;
_proximaPosicao++; <===== *Lugar que está lançando a exceção*
}
public void VerificarCapacidade(int tamanhoNecessario)
{
if (_itens.Length >= tamanhoNecessario)
{
return;
}
int novoTamanho = _itens.Length * 2;
if (novoTamanho < tamanhoNecessario)
{
novoTamanho = tamanhoNecessario;
}
ContaCorrente[] novoArray = new ContaCorrente[novoTamanho];
Console.WriteLine("Aumentando capacidade da lista!");
for (int indice = 0; indice < _itens.Length; indice++)
{
novoArray[indice] = _itens[indice];
Console.WriteLine(".");
}