1
resposta

Dúvida de uma solução

Fiz primeiramente minha solução assim, como mostra o professor, porem quando roda o código, há uma exceção de "System.NullReferenceException", como evitar esta exceção public ContaCorrente MaiorSaldo() {

        ContaCorrente conta=null;
        double maiorValor = 0;
        for (int i = 0; i < _itens.Length; i++)
        {
            if (_itens[i] != null)
            {
                if (maiorValor < _itens[i].Saldo)
                {
                    maiorValor = _itens[i].Saldo;
                    conta = _itens[i];
                }
            }

        }

        return conta;
    }
1 resposta

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:

  1. 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.

  2. 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 ✓.