Olá, Bruno! Como vai?
A exceção System.NullReferenceException
geralmente ocorre quando você tenta acessar um membro de um objeto que é nulo. No seu caso, parece que o problema pode estar relacionado ao array _itens
, que pode conter elementos nulos.
Para evitar essa exceção, você já está verificando se _itens[i]
é diferente de nulo antes de acessar a propriedade Saldo
. Isso é ótimo! No entanto, é importante garantir que o próprio array _itens
não seja nulo antes de iniciar o loop. Aqui está uma forma de melhorar o seu método:
public ContaCorrente MaiorSaldo()
{
if (_itens == null || _itens.Length == 0)
{
return null; // Retorna nulo se o array estiver vazio ou for nulo
}
ContaCorrente conta = null;
double maiorValor = double.MinValue; // Usar double.MinValue para garantir que qualquer saldo será maior
for (int i = 0; i < _itens.Length; i++)
{
if (_itens[i] != null && _itens[i].Saldo > maiorValor)
{
maiorValor = _itens[i].Saldo;
conta = _itens[i];
}
}
return conta;
}
Aqui estão algumas melhorias que fiz:
Verificação do Array: Antes de começar a iteração, verifiquei se o array _itens
é nulo ou vazio. Isso evita tentativas de acessar um array nulo.
Inicialização de maiorValor
: Inicializei maiorValor
com double.MinValue
para garantir que qualquer saldo será maior que o valor inicial.
Com essas alterações, você deve conseguir evitar a exceção NullReferenceException
e ter um método mais robusto.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.