Øvelse – Udfør tilføjelse med implicit datakonvertering

Fuldført

Det er ofte en god idé at udføre matematiske handlinger på numeriske data. Du starter med at tilføje i dette undermodul og udvider til andre handlinger i det næste undermodul, fordi der er en vigtig lektion, hvor du kan få mere at vide om, hvordan C#-compileren fortolker og fortolker din kode.

Tilføj to numeriske værdier

Hvis du vil lægge to tal sammen, skal du bruge additionsoperatoren, som er plussymbolet +. Ja, det samme plussymbol + , som du bruger til strengsammenkædning, bruges også til tilføjelse. Genbrug af et symbol til flere formål kaldes nogle gange "overbelastning af operatoren" og sker ofte i C#.

I dette tilfælde forstår C#-compileren, hvad du forsøger at gøre. Compileren fortolker din kode og ser, at + (operatoren) er omgivet af to numeriske værdier (operanderne). På grund af datatyperne for variablerne (begge er ints), regner det ud, at du havde til hensigt at tilføje disse to værdier.

En C#-kodeeditor kan bruges direkte i browseren: C# Code Editor. Denne editor giver et letvægtsmiljø til at skrive, køre og teste C#-kode uden at skulle installere software på din lokale computer.

  1. Åbn C# Code Editor i et nyt browservindue eller en ny fane.

    Du kan placere browservinduerne side om side, så du kan se disse instruktioner, mens du arbejder i C#-kodeeditoren.

  2. Indtast følgende kode i C#-kodeeditoren:

    int firstNumber = 12;
    int secondNumber = 7;
    Console.WriteLine(firstNumber + secondNumber);
    
  3. Kør koden, så får du vist følgende resultat i outputkonsollen:

    19
    

Bland datatyper for at gennemtvinge implicitte typekonverteringer

Hvad sker der, hvis du forsøger at bruge symbolet + med både string og int værdier?

  1. Fjern al den kode, du tidligere har skrevet.

  2. Indtast følgende kode i C#-kodeeditoren:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");
    
  3. Kør koden, så får du vist følgende resultat i outputkonsollen:

    Bob sold 7 widgets.
    

I dette tilfælde forstår C#-compileren, at du vil bruge symbolet + til at sammenkæde de to operander. Det udledes, fordi symbolet + er omgivet af operander af string og int datatyper. Så den forsøger implicit at konvertere variablen intwidgetsSold til en string midlertidigt, så den kan sammenkæde den med resten af strengen. C#-compileren forsøger at hjælpe dig, når det er muligt, men ideelt set ville du være eksplicit om dine hensigter.

Prøv at tilføje tal og sammenkæde strenge på et mere avanceret måde

  1. Rediger den kode, du skrev, så den stemmer overens med følgende kode:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");
    
  2. Kør koden, så får du vist følgende resultat i outputkonsollen:

    Bob sold 77 widgets.
    

I stedet for at føje variablen intwidgetsSold til konstanten int7behandler compileren alt som en streng og sammenkæder det hele.

Tilføj parenteser for at tydeliggøre din hensigt med compileren

  1. Rediger den kode, du skrev, så den stemmer overens med følgende kode:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");
    
  2. Kør koden, så får du vist følgende resultat i outputkonsollen:

    Bob sold 14 widgets.
    

Parentessymbolet () bliver endnu en overbelastet operator. I dette tilfælde udgør start- og slutparenteserne rækkefølgen af operationsoperatoren , ligesom du kan bruge i en matematisk formel. Du angiver, at de inderste parenteser først skal fortolkes, hvilket resulterer i tilføjelse af int værdier widgetsSold og værdien 7. Når det er løst, konverterer det implicit resultatet til en streng, så det kan sammenkædes med resten af meddelelsen.

Bemærk

Du bør sandsynligvis undgå at udføre både en beregning og sammenkædning i en enkelt kodelinje. Pointen her er at hjælpe dig med at forstå, hvordan du får vist operatorer og operander, som compileren gør.

Resumé

Her er, hvad du har lært indtil videre om matematiske operationer i C#:

  • Du kan udføre matematiske tilføjelseshandlinger på tal.
  • Både strengsammenkædning og addition bruger plussymbolet + . Dette kaldes overbelastning af en operator, og compileren udleder den korrekte brug baseret på de datatyper, den arbejder på.
  • Når det er muligt, konverterer C#-compileren implicit en int til en string , hvis det er indlysende, at udvikleren forsøger at sammenkæde strengrepræsentationen af et tal til præsentationsformål.
  • Brug parenteser til at definere en rækkefølge af handlinger for eksplicit at fortælle compileren, at du vil udføre visse handlinger før andre handlinger.