1
resposta

[Dúvida] Desafio exercico 2 , 3 e 4 warning CS8604

juntei os 3 ultimos exercicios mas apareceu uma mensagem de erro

//Criar uma lista de linguagens de programação, com as linguagens C#, Java e JavaScript.
List<string> linguagem = new List<string> { "c#", "java", "javascript" };

//Exibir o valor "C#" no console, utilizando a lista criada no exercício anterior.
Console.WriteLine(linguagem[2]);
//Criar um programa que, dado a entrada de dados de um número n inteiro,
//a partir do teclado, exibir a n-ésima posição de uma lista.
Console.WriteLine("Digite a posição desejada: ");
int posicao = int.Parse(Console.ReadLine());

Console.WriteLine(linguagem[posicao]);

Aparece esta mensgem de erro embora tenha executado o programa, gostaria de saber o que aconteceu

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Ivan! Tudo bem?

O warning CS8604 que você está vendo indica que o método int.Parse pode estar recebendo um valor nulo, o que pode causar um erro em tempo de execução. Isso geralmente acontece quando Console.ReadLine() retorna null, o que pode ocorrer se a entrada do usuário for inesperadamente interrompida.

Para resolver isso, você pode adicionar uma verificação para garantir que a entrada não seja nula antes de tentar convertê-la para um inteiro. Aqui está um exemplo de como você pode fazer isso:

Console.WriteLine("Digite a posição desejada: ");
string? entrada = Console.ReadLine();

if (!string.IsNullOrEmpty(entrada))
{
    int posicao;
    if (int.TryParse(entrada, out posicao))
    {
        if (posicao >= 0 && posicao < linguagem.Count)
        {
            Console.WriteLine(linguagem[posicao]);
        }
        else
        {
            Console.WriteLine("Posição fora do intervalo da lista.");
        }
    }
    else
    {
        Console.WriteLine("Entrada inválida. Por favor, digite um número inteiro.");
    }
}
else
{
    Console.WriteLine("Nenhuma entrada foi fornecida.");
}

Essa abordagem verifica se a entrada é nula ou vazia, tenta converter a entrada em um inteiro e também verifica se a posição está dentro dos limites da lista.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.