Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] o que a exclamação faz no final do Console.ReadLine ?

No video, na linha 27, o professor escreve primeiramente.

string opcaoEscolhida = Console.ReadLine();

Em seguida diz que retorna uma null, e corrige com.

string opcaoEscolhida = Console.ReadLine()!;

Essa exclamação, sei que é de negação, mas não entendi o que esse null vira, Vira um booleano ? Vira uma gavetinha onde posso guarda qualquer coisa nela ? Exemplo, vira zero e eu posso mudar, o zero agora se torna 1 ou qualquer outra coisa.

1 resposta
solução!

Olá, Samuel, como vai?

Essa exclamação no final do Console.ReadLine não é um operador de negação lógica. No C#, ela é chamada de operador de supressão de nulidade. O que ela faz é informar ao compilador que, naquele ponto do código, você garante que o valor retornado não será null, mesmo que o método permita esse retorno.

O método Console.ReadLine tem como tipo de retorno string?, ou seja, uma string que pode ser nula. Isso acontece porque, em algumas situações específicas, como falhas na entrada padrão, o método realmente pode retornar null. Quando você escreve apenas Console.ReadLine(), o compilador avisa que existe a possibilidade de a variável receber null e ao usar Console.ReadLine()!, você está dizendo explicitamente: confie em mim, aqui não será null.

Então esse null não vira booleano e nem zero. Null significa ausência de valor. É diferente de uma string vazia "" e diferente de qualquer número. Não existe conversão automática de null para outro tipo nesse caso. A exclamação apenas remove o aviso do compilador, sem alterar o valor em tempo de execução.

Espero ter ajudado.

Siga firme nos seus estudos e conte com o fórum sempre que precisar.

Abraços :)

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