Exercício - Execute a adição com conversão de dados implícita
Muitas vezes, você vai querer executar operações matemáticas em dados numéricos. Você começará com a adição nesta unidade e expandirá para outras operações na próxima unidade, porque há uma lição importante a aprender sobre como o compilador C# analisa e interpreta seu código.
adicionar dois valores numéricos
Para adicionar dois números, irá utilizar o operador de adição, que é o símbolo de mais +. Sim, o mesmo símbolo + que utiliza na concatenação de strings também é utilizado na adição. A reutilização de um símbolo para múltiplas finalidades é por vezes referida como a ação de "sobrecarregar o operador" e ocorre frequentemente em C#.
Neste caso, o compilador de C# compreende o que está a tentar fazer. O compilador analisa o seu código e vê que + (o operador) está entre dois valores numéricos (os operandos). De acordo com os tipos de dados das variáveis (ambos são int), o mesmo deduz que pretende somar esses dois valores.
Um editor de código C# está disponível para uso direto no navegador: C# Code Editor. Este editor fornece um ambiente leve para escrever, executar e testar código C# sem a necessidade de instalar qualquer software no seu computador local.
Abra o Editor de Códigos C# em uma nova janela ou guia do navegador.
Você pode posicionar as janelas do navegador lado a lado para que possa consultar estas instruções enquanto trabalha no Editor de Códigos C#.
Insira o seguinte código no Editor de Códigos C#:
int firstNumber = 12; int secondNumber = 7; Console.WriteLine(firstNumber + secondNumber);Execute o código e você verá o seguinte resultado no console de saída:
19
misturar tipos de dados para forçar as conversões implícitas de tipo
O que acontece se tentar 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ódigos C#:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");Execute o código e você verá o seguinte resultado no console de saída:
Bob sold 7 widgets.
Nesse caso, o compilador C# entende que você deseja usar o + símbolo para concatenar os dois operandos. Faz esta dedução porque o símbolo + está entre operandos dos tipos de dados string e int. Assim, tenta converter, de forma implícita e temporária, a variável intwidgetsSold numa string para a poder concatenar com o resto da cadeia. O compilador de C# tenta ajudá-lo quando puder, mas o ideal é que transmita as suas intenções de forma explícita.
tente adicionar números e concatenar cadeias de forma mais complexa
Modifique o código que você escreveu para corresponder ao seguinte código:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");Execute o código e você 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 se fosse uma cadeia e concatena tudo junto.
Adicione parênteses para esclarecer sua intenção ao compilador
Modifique o código que você escreveu para corresponder ao seguinte código:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");Execute o código e você verá o seguinte resultado no console de saída:
Bob sold 14 widgets.
O símbolo de parênteses () torna-se outro operador sobrecarregado. Neste caso, os parênteses de abertura e fecho formam o operador da ordem das operações tal como numa fórmula matemática. Você indica que deseja que os parênteses mais internos sejam resolvidos primeiro, resultando na adição dos valores int e do valor widgetsSold. Após isso ser resolvido, ocorrerá a conversão implícita do resultado em uma cadeia de caracteres para que esta possa ser concatenada com a restante mensagem.
Nota
Talvez deva evitar realizar um cálculo e uma concatenação numa única linha de código. O objetivo é ajudá-lo a compreender como pode ver os operadores e os operandos da forma que o compilador os vê.
Recapitulação
Aqui está o que você aprendeu até agora sobre operações matemáticas em C#:
- Pode realizar operações de adição em números semelhantes às operações de adição matemáticas.
- Tanto a concatenação de strings como a adição utilizam o símbolo de mais
+. A isto chama-se sobrecarregar um operador e o compilador infere a utilização adequada com base nos tipos de dados nos quais opera. - Quando puder, o compilador de C# converterá implicitamente um
intnumastringse for óbvio que o programador está a tentar concatenar a representação da cadeia de um número para fins de apresentação. - Use parênteses para definir uma ordem de operações para dizer explicitamente ao compilador que você deseja executar determinadas operações antes de outras operações.