1
resposta

O valor constante -2300 não é do tipo long?

Na questão diz, "O que acontece quando esse código é compilado e executado?"

uint estoque = -2300;
Console.WriteLine($"estoque: {estoque}");

Marquei a alternativa A

a) Ocorre um erro de compilação: Não é possível converter um valor long para uint.

Porém a questão diz "O valor constante -2300 não é do tipo long,", mas escrevi o código abaixo no visual studio e compilou.

long estoque = -2300;

ou seja, o valor -2300 É sim um valor long, alguém poderia me explicar pq a questão disse que não era?

1 resposta

Olá Felipe, tudo bem?

O tipo uint não aceita valores negativos. Por isso daria um erro de compilação.

O valor -2300 pode ser do tipo short, int ou long, porém por ele ser um número negativo, ocorrerá um erro de compilação ao atribuir esse valor a qualquer tipo que só aceita números positivos (unsigned), como ushort, uint e ulong.

O que o erro "Não é possível converter um valor long para uint." quer dizer é que não é possível atribuir nenhum número negativo, independente se o número for short, int ou long, para o tipo uint.

Bons estudos!