Gyakorlat – Kódblokkok eltávolítása a ha utasításból

Befejeződött

A szoftverfejlesztők imádják, ha olyan kódot írhatnak, amely anélkül takarít meg billentyűleütéseket és vizuális helyet, hogy feláldozná az olvashatóságot. Csak akkor alkalmazza a "kevesebb több" kifejezést a fejlesztési folyamatban, ha a kód olvashatóbbá és érthetőbbé válik.

Ha egy kódblokknak csak egy kódsorra van szüksége, valószínűleg nem kell kapcsos zárójelekkel formális kódblokkot definiálnia. Bár gyakorlatilag nem is kell több sorra különítenie a kódot, az egy sorban lévő utasítások kombinálásával nehezen olvashatóvá teheti a kódot.

A kapcsos zárójelek eltávolítása, ahogy fent említettük, olyan stílusbeli változás, amely nem befolyásolja a kód működését. Azonban lépéseket kell tennie annak érdekében, hogy a módosítások ne befolyásolják negatívan a kód olvashatóságát. Értékelheti a kapcsos zárójelek és a szabad terület eltávolításának hatását, majd visszatérhet az eredeti kódhoz, ha úgy találja, hogy a módosítások kevésbé olvashatóvá tették a kódot.

Példa létrehozása kódblokkot használó if utasításra

  1. Győződjön meg arról, hogy egy üres Program.cs fájl van megnyitva a Visual Studio Code-ban.

    Ha szükséges, nyissa meg a Visual Studio Code-ot, majd végezze el a következő lépéseket egy Program.cs fájl szerkesztéséhez a Szerkesztőben:

    1. A Fájl menüben válassza a Mappa megnyitása lehetőséget.

    2. A Mappa megnyitása párbeszédpanelen lépjen a CsharpProjects mappára, majd nyissa meg azt.

    3. A Visual Studio Code EXPLORER ablakban válassza a Program.cs-t.

    4. A Visual Studio Code Selection menüjében válassza az Összes kijelölése lehetőséget, majd nyomja le a Delete billentyűt.

  2. Írja be a következő kódot a Visual Studio Code Editorba:

    bool flag = true;
    if (flag)
    {
        Console.WriteLine(flag);
    }
    
  3. Mentse a kódfájlt, majd a Visual Studio Code használatával futtassa a kódot.

    Írja be dotnet run a terminál parancssorából a kód futtatásához.

  4. Ellenőrizze, hogy a következő kimenet jelenik-e meg:

    True
    

    A kód jó kiindulási pontot jelöl, de van egy kódblokkja, amely egyetlen kódsort tartalmaz. Ebben az esetben szükség van kódblokk meghatározására?

Távolítsa el a kapcsos zárójeleket

A fenti kód akkor hajt végre egy kódblokkot, amikor a flagtrue. Mivel ez a kódblokk egyetlen kódsort tartalmaz, lehetősége van eltávolítani a kapcsos zárójeleket.

  1. Frissítse a kódot a Visual Studio Code Editorban az alábbiak szerint:

    bool flag = true;
    if (flag)
        Console.WriteLine(flag);
    

    Megjegyzés:

    A kapcsos zárójelek eltávolítása nem változtat azon a tényen, hogy a Console.WriteLine(flag); kódrészlet a if utasításhoz tartozik.

  2. Mentse a kódfájlt, majd a Visual Studio Code használatával futtassa a kódot.

  3. Figyelje meg, hogy a kimenet ugyanaz, mint korábban.

    Továbbra is a következő kimenetnek kell megjelennie:

    True
    

    Azonban két kisebb sornyi kód van. Ami a legfontosabb, hogy a kódsor a if behúzás alatt van, a kód továbbra is könnyen olvasható.

Az egysoros feltételes utasítások olvashatóságának vizsgálata

Ebben a lépésben egy olyan esetet fog megvizsgálni, amelyben a kód olvashatósága negatívan befolyásolható.

Mivel mind az if utasítás, mind a Console.WriteLine() metódus hívása rövid, előfordulhat, hogy egyetlen sorban szeretné őket egyesíteni. Végül is az if utasítás C#-szintaxisa lehetővé teszi az utasítások ilyen módon történő kombinálására.

  1. Frissítse a kódot a Visual Studio Code Editorban az alábbiak szerint:

    bool flag = true;
    if (flag) Console.WriteLine(flag);
    
  2. Mentse a kódfájlt, majd a Visual Studio Code használatával futtassa a kódot.

  3. Figyelje meg, hogy a kimenet továbbra is ugyanaz.

  4. Szánjon egy percet a kód olvashatóságának megfontolására.

    Képzelje el az előző két kódmintát egy nagyobb kódszakaszba ágyazva. A kódkivonatok kombinálása (ahogyan a 4. lépésben tette) megnehezítheti az olvasást.

    Ha egy if egyutas kódblokkot tartalmazó utasítást implementál, a Microsoft a következő konvenciók használatát javasolja:

    • Soha ne használjon egysoros formátumot (például: if (jelző) Console.WriteLine(jelző);
    • A kapcsos zárójelek használata mindig elfogadott, és kötelező, ha egy ha/else if/.../else összetett utasítás bármely blokkja kapcsos zárójelet használ, vagy ha egyetlen utasítástörzs több sorra is kiterjed.
    • A kapcsos zárójelek csak akkor hagyhatók ki, ha a ha/else if/.../else összetett utasításhoz társított összes blokk törzse egyetlen sorban van elhelyezve.
  5. A nagyobb if-elseif-else szerkezetek olvashatósági hatásának vizsgálatához frissítse a kódot az alábbiak szerint:

    string name = "steve";
    if (name == "bob") Console.WriteLine("Found Bob");
    else if (name == "steve") Console.WriteLine("Found Steve");
    else Console.WriteLine("Found Chuck");
    
  6. Mentse a kódfájlt, majd a Visual Studio Code használatával futtassa a kódot.

    A kód futtatásakor a következő kimenetnek kell lennie:

    Found Steve
    

    A kód fut, de ezek a kódsorok sűrűk és nehezen olvashatók. Érdemes lehet újraformálni a kódot, hogy sortörést tartalmazzon a , ifés else if az elseutasítások után.

  7. Hasonlítsa össze az imént futtatott kódot a következő kóddal:

    string name = "steve";
    
    if (name == "bob")
        Console.WriteLine("Found Bob");
    else if (name == "steve") 
        Console.WriteLine("Found Steve");
    else
        Console.WriteLine("Found Chuck");
    

    Figyelje meg, hogy mennyivel könnyebb elolvasni a második kódmintát.

Összefoglalás

Íme néhány fontos dolog, amit meg kell jegyezni az utasításkódblokkokról és az olvashatóságról if :

  • Ha észreveszi, hogy a kódblokk az if-elseif-else utasításon belül csak egyetlen kódsort tartalmaz, eltávolíthatja a kódblokk kapcsos zárójeleit és a szóközöket. A Microsoft azt javasolja, hogy a kapcsos zárójeleket következetesen használja az if-elseif-else adott utasítás összes kódblokkjában (akár jelen vannak, akár következetesen el vannak távolítva).
  • Csak akkor távolítsa el a kódblokk kapcsos zárójelét, ha az olvashatóbbá teszi a kódot. A kapcsos zárójelek mindig elfogadhatók.
  • Csak akkor távolítsa el a soremelést, ha az olvashatóbbá teszi a kódot. A Microsoft azt javasolja, hogy a kód olvashatóbb legyen, ha minden utasítás a saját kódsorára kerül.