Exercício – Realizar adição com conversão implícita de dados
Muitas vezes, você deseja executar operações matemáticas sobre dados numéricos. Você começará com a adição nesta unidade, depois passará para outras operações na próxima unidade, pois há uma lição importante a ser aprendida sobre como o compilador do C# analisa e interpreta o seu código.
adicionar dois valores numéricos
Para somar dois números, você usará o operador de adição, que é o sinal de mais +. Sim, o mesmo símbolo de mais + que você usa para concatenação de cadeias de caracteres também é usado para adição. A reutilização de um símbolo com várias finalidades é, às vezes, chamada de "sobrecarregar o operador", e ocorre frequentemente em C#.
Neste caso, o compilador de C# entende o que você está tentando fazer. O compilador analisa o código e vê que o + (operador) está posicionado entre dois valores numéricos (operandos). Considerando os tipos de dados das variáveis (ambos são ints), ele conclui que você deseja adicionar os dois valores.
Um editor de código C# está disponível para uso diretamente no navegador: Editor de Código C#. Este editor fornece um ambiente leve para escrever, executar e testar código C# sem a necessidade de instalar nenhum software em seu computador local.
Abra o Editor de Código em C# em uma nova janela ou guia do navegador.
Você pode posicionar as janelas do navegador lado a lado para que possa consultar essas instruções enquanto trabalha no Editor de Código do C#.
Insira o seguinte código no Editor de Código em C#:
int firstNumber = 12; int secondNumber = 7; Console.WriteLine(firstNumber + secondNumber);Execute o código e verá o seguinte resultado no console de saída:
19
misturar tipos de dados para forçar as conversões de tipo implícitas
O que acontece se você tenta usar o símbolo + com os valores string e int?
Remova todo o código que você escreveu anteriormente.
Insira o seguinte código no Editor de Código em C#:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");Execute o código e verá o seguinte resultado no console de saída:
Bob sold 7 widgets.
Neste caso, o compilador de C# entende que você deseja usar o símbolo + para concatenar os dois operandos. Ele deduz isso porque o símbolo + está rodeado por operandos dos tipos de dados string e int. Sendo assim, ele tenta converter implicitamente a variável intwidgetsSold em um string temporariamente, para que possa concatenar o restante da cadeia de caracteres. O compilador de C# tenta ajudá-lo quando pode, mas o ideal é que você seja explícito quanto às suas intenções.
tentar um caso mais avançado de adição de números e concatenação de cadeias de caracteres
Modifique o código escrito para que corresponda ao seguinte código:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");Execute o código e verá o seguinte resultado no console de saída:
Bob sold 77 widgets.
Em vez de adicionar a variável intwidgetsSold ao literal int7, o compilador trata tudo como uma cadeia de caracteres e concatena tudo.
Adicionar parênteses para esclarecer sua intenção ao compilador
Modifique o código escrito para que corresponda ao seguinte código:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");Execute o código e verá o seguinte resultado no console de saída:
Bob sold 14 widgets.
O símbolo de parênteses () se torna outro operador sobrecarregado. Neste caso, os parênteses de abertura e fechamento formam o operador de ordem de operações, exatamente como você usaria em uma fórmula matemática. Você indica que quer que os parênteses internos sejam resolvidos primeiro, resultando na adição dos valores int, widgetsSold e o valor 7. Após isso ser resolvido, ele converterá implicitamente o resultado em uma cadeia de caracteres para que possa ser concatenado ao restante da mensagem.
Observação
Provavelmente, você deveria evitar executar um cálculo e uma concatenação em uma única linha de código. A ideia aqui é ajudar você a entender como ver operadores e operandos da maneira que o compilador faz.
Recapitulação
Veja o que você aprendeu até agora sobre operações matemáticas em C#:
- Você pode executar operações matemáticas, como de adição, em números.
- A concatenação de cadeias de caracteres e a adição usam o símbolo de adição
+. Isso é chamado de sobrecarregar um operador e o compilador infere o uso adequado com base nos tipos de dados em que opera. - Quando puder, o compilador de C# converterá implicitamente um
intem umstringse for óbvio que o desenvolvedor está tentando concatenar a representação de cadeia de caracteres de um número para fins de apresentação. - É possível usar parênteses para definir a ordem das operações, a fim de informar explicitamente ao compilador que deseja executar determinadas operações antes de outras.