Exercício - Execute a adição com conversão de dados implícita

Concluído

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.

  1. 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#.

  2. Insira o seguinte código no Editor de Códigos C#:

    int firstNumber = 12;
    int secondNumber = 7;
    Console.WriteLine(firstNumber + secondNumber);
    
  3. 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?

  1. Remova todo o código que você escreveu anteriormente.

  2. Insira o seguinte código no Editor de Códigos C#:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");
    
  3. 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

  1. 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.");
    
  2. 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

  1. 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.");
    
  2. 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 int numa string se 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.