Exercițiul - Efectuați adăugarea cu conversia implicită a datelor

Finalizat

Adesea, veți dori să efectuați operații matematice pentru date numerice. Veți începe cu adăugarea acestei unități și veți extinde la alte operațiuni din următoarea unitate, deoarece există o lecție importantă pentru a afla cum analizează compilatorul C# și vă interpretează codul.

Adunarea a două valori numerice

Pentru a aduna două numere, veți utiliza operatorul de adunare, care este simbolul +plus . Da, același simbol + plus pe care îl utilizați pentru concatenarea șirurilor este utilizat și pentru adunare. Reutilizarea unui simbol în mai multe scopuri este denumită uneori "supraîncărcarea operatorului" și are loc frecvent în C#.

În acest caz, compilatorul C# înțelege ce încercați să faceți. Compilatorul analizează codul și vede că + (operatorul) este înconjurat de două valori numerice (operanzii). Având în vedere tipurile de date ale variabilelor (ambele sunt ints), indică faptul că intenționați să adunați aceste două valori.

Un editor de cod C# este disponibil pentru utilizare direct în browser: Editor de cod C#. Acest editor oferă un mediu ușor pentru scrierea, rularea și testarea codului C# fără a fi nevoie să instalați niciun software pe computerul local.

  1. Deschideți Editorul de cod C# într-o fereastră sau filă de browser nouă.

    Puteți poziționa ferestrele browserului una lângă alta, astfel încât să puteți consulta aceste instrucțiuni în timp ce lucrați în Editorul de cod C#.

  2. Introduceți următorul cod în Editorul de cod C#:

    int firstNumber = 12;
    int secondNumber = 7;
    Console.WriteLine(firstNumber + secondNumber);
    
  3. Rulați codul și veți vedea următorul rezultat în consola de ieșire:

    19
    

Combinați tipuri de date pentru a impune conversii implicite de tip

Ce se întâmplă dacă încercați să utilizați + simbolul atât cu valori, cât string și int cu valori?

  1. Eliminați tot codul pe care l-ați scris anterior.

  2. Introduceți următorul cod în Editorul de cod C#:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");
    
  3. Rulați codul și veți vedea următorul rezultat în consola de ieșire:

    Bob sold 7 widgets.
    

În acest caz, compilatorul C# înțelege că doriți să utilizați + simbolul pentru a concatena cei doi operanzi. Deduce acest lucru, deoarece + simbolul este înconjurat de operanzi și tipuri de stringint date. Astfel, încearcă să convertească implicit variabila intwidgetsSold într-o string temporară, astfel încât să o poată concatena la restul șirului. Compilatorul C# încearcă să vă ajute atunci când poate, dar în mod ideal, veți fi explicit în legătură cu intențiile dvs.

Încercarea unui caz mai complex de a aduna numere și a concatena șiruri de concatenare

  1. Modificați codul pe care l-ați scris pentru a se potrivi cu următorul cod:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");
    
  2. Rulați codul și veți vedea următorul rezultat în consola de ieșire:

    Bob sold 77 widgets.
    

În loc să adauge variabila intwidgetsSold la literal int7, compilatorul tratează totul ca pe un șir și îl concatenează pe toate împreună.

Adăugați paranteze pentru a clarifica intenția dvs. la compilator

  1. Modificați codul pe care l-ați scris pentru a se potrivi cu următorul cod:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");
    
  2. Rulați codul și veți vedea următorul rezultat în consola de ieșire:

    Bob sold 14 widgets.
    

Simbolul () paranteze devine un alt operator supraîncărcat. În acest caz, parantezele de deschidere și închidere formează ordinea operatorului de operațiuni , așa cum ați putea utiliza într-o formulă matematică. Indicați faptul că doriți ca parantezele interne să fie rezolvate prima dată, având ca rezultat adăugarea de int valori widgetsSold și valoarea 7. După ce aceasta este rezolvată, aceasta va efectua implicit conversia rezultatului într-un șir, astfel încât să poată fi concatenată cu restul mesajului.

Notă

Probabil că ar trebui să evitați efectuarea unui calcul și a concatenării într-o singură linie de cod. Punctul de aici este să vă ajute să înțelegeți cum să vizualizați operatorii și operanzii așa cum face compilatorul.

Recapitulare

Iată ce ați învățat până acum despre operații matematice în C#:

  • Puteți efectua operații matematice, cum ar fi adunarea numerelor.
  • Atât concatenarea și adăugarea șirului utilizează simbolul plus + . Acest lucru se numește supraîncărcare operator, iar compilatorul deduce utilizarea corespunzătoare pe baza tipurilor de date pe care operează.
  • Atunci când poate, compilatorul C# va efectua în mod implicit conversia într-un intstring dacă este evident că dezvoltatorul încearcă să concateneze reprezentarea șirului unui număr în scopuri de prezentare.
  • Utilizați paranteze pentru a defini o ordine de operațiuni pentru a spune în mod explicit compilatorului că doriți să efectuați anumite operațiuni înainte de alte operațiuni.