Gyakorlat – Hozzáadás implicit adatkonvertálással

Befejeződött

Gyakran érdemes matematikai műveleteket végezni numerikus adatokon. Ebben a leckében a kiegészítéssel kell kezdenie, és a következő leckében ki kell bontania a többi műveletre, mert egy fontos lecke bemutatja, hogyan elemzi és értelmezi a C#-fordító a kódot.

Két numerikus érték összeadása

Két szám együttes hozzáadásához az összeadás operátort fogja használni, amely a pluszjel +. Igen, ugyanazt a pluszjelet + használjuk a karakterláncok összefűzésére és az összeadásra is. Egy szimbólum több célra való felhasználását olykor „az operátor túlterhelésének” nevezik, és ez a C# nyelvben gyakran előfordul.

Ebben az esetben a C#-fordító megérti a szándékát. A fordító feldolgozza a kódot, és látja, hogy a + szimbólumot (az operátort) két numerikus érték fogja közre (az operandusok). A változók adattípusai alapján (mindkettő int) látja, hogy Ön mindkét értéket hozzá akarta adni.

A C# kódszerkesztő közvetlenül a böngészőben használható: C# Kódszerkesztő. Ez a szerkesztő egy egyszerű környezetet biztosít a C#-kód írásához, futtatásához és teszteléséhez anélkül, hogy szoftvereket kellene telepítenie a helyi számítógépre.

  1. Nyissa meg a C#-kódszerkesztőt egy új böngészőablakban vagy lapon.

    A böngészőablakokat egymás mellett helyezheti el, hogy a C#-kódszerkesztőben végzett munka során ezekre az utasításokra hivatkozzon.

  2. Írja be a következő kódot a C# kódszerkesztőbe:

    int firstNumber = 12;
    int secondNumber = 7;
    Console.WriteLine(firstNumber + secondNumber);
    
  3. Futtassa a kódot, és a következő eredményt fogja látni a kimeneti konzolon:

    19
    

Vegyes adattípusok használata az implicit típuskonverziók kiváltásához

Mi történik, ha megpróbálja a + szimbólumot mind a string, mind pedig a int értékekkel használni?

  1. Távolítsa el a korábban írt összes kódot.

  2. Írja be a következő kódot a C# kódszerkesztőbe:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");
    
  3. Futtassa a kódot, és a következő eredményt fogja látni a kimeneti konzolon:

    Bob sold 7 widgets.
    

Ebben az esetben a C#-fordító megérti, hogy a + szimbólumot a két operandus összefűzéséhez szeretné használni. Erre abból következtet, hogy a + szimbólumot string és int típusú adatok fogják közre. Emiatt megkísérli az int típusú widgetsSold változót ideiglenesen string típusra konvertálni, hogy összefűzhesse a sztring többi részével. A C#-fordító megpróbál segíteni, mégis érdemesebb egyértelműen kifejezni a szándékainkat.

Próbálja ki a számok összeadásának és a sztringek összefűzésének egy speciálisabb esetét

  1. Módosítsa a megírt kódot úgy, hogy az megfeleljen a következő kódnak:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");
    
  2. Futtassa a kódot, és a következő eredményt fogja látni a kimeneti konzolon:

    Bob sold 77 widgets.
    

Ahelyett, hogy összeadná az int típusú widgetsSold változó értékét az int típusú 7 konstanssal, a fordító mindent sztringként kezel és összefűz.

Zárójelek hozzáadása a fordító szándékának tisztázásához

  1. Módosítsa a megírt kódot úgy, hogy az megfeleljen a következő kódnak:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");
    
  2. Futtassa a kódot, és a következő eredményt fogja látni a kimeneti konzolon:

    Bob sold 14 widgets.
    

A () zárójel operátor túlterhelté válik. Ebben az esetben a nyitó és záró zárójel a műveleti sorrendet kijelölő operátor, ahogyan egy matematikai képletben használnánk. Azt jelzi, hogy először a legbelső zárójeleket szeretné feloldani, ami a int és widgetsSold értékek, valamint a 7 érték hozzáadását eredményezi. Ennek kiszámítása után az eredményt implicit módon sztringgé konvertálja, hogy összefűzhető legyen az üzenet többi részével.

Feljegyzés

Talán érdemesebb kerülni a számítási és összefűzési műveletek egy kódsoron belüli használatát. A lényeg itt az, hogy megértse, hogyan tekintsen az operátorokra és operandusokra úgy, ahogy a fordítóprogram.

Összefoglalás

A C#-ban végzett matematikai műveletekről eddig az alábbiakat tanulta:

  • A számokkal olyan matematikai műveletek végezhetők, mint az összeadás.
  • A sztringösszefűzéshez és az összeadáshoz is a pluszjelet (+) használhatja. Ezt operátor túlterhelésnek nevezzük, és a fordító az adattípusok alapján következtet a megfelelő használatra.
  • Amennyiben lehetséges, a C#-fordító implicit módon átkonvertálja a int-t string-re, ha egyértelmű, hogy a fejlesztő a szám sztring reprezentációját próbálja összefűzni megjelenítési célokra.
  • Zárójelek használatával határozza meg a műveletek sorrendjét, hogy explicit módon közölje a fordítóval, hogy bizonyos műveleteket más műveletek előtt szeretne végrehajtani.