2
respostas

Dúvida com o comando Messagebox.Show

Fiz o código da seguinte maneira

int soma = 0; 
int numero = 1;
while (numero <= 1000)
{
          soma += numero;
          numero +=1;
}
MessageBox.Show(soma);

Porém o programa somente roda se eu concatenar, escrevendo na última linha do código da seguinte maneira:

MessageBox.Show("A soma de 1 a 1000 é " + soma);

Por que isso acontece ?

2 respostas

Oi Renato, tudo bem? Não tenho certeza, mas vou chutar que o método Show espera receber apenas texto. Quando você passa apenas números ele não converte automaticamente é ai você acaba com esse problema.

No caso da concatenação, implicitamente, você converte o valor numérico para texto.

Estou na dúvida se realmente é isso, mas acredito que seja. Isso me soa bem estranho.

Oi Renato, tudo bom?

O que Wanderson disse é o que acontece mesmo.

Se você der uma olhada na documentação do método Show da classe MessageBox, você verá que ele só consegue receber strings.

Quando passamos um numero o C# retorna um erro porque um numero não é uma instancia de String. Quando concatenamos estamos convertendo esse numero em texto. Se você testar, verá que mesmo concatenando uma string vazia ele funciona. Algo como:

MessageBox.Show("" + soma);

O jeito bonito de resolver isso é converter manualmente seu numero em texto. Uma das formas de fazer isso é chamando o método ToString da classe Convert:

MessageBox.Show(Convert.ToString(soma));

Abraço!