Gyakorlat – Paraméterek használata metódusokban

Befejeződött

A metódusok létrehozásakor gyakran meg kell adnia néhány információt a használni kívánt metódusról. A metódus által felhasznált információkat paraméternek nevezzük. A feladat elvégzéséhez annyi paramétert adhat meg, amennyi szükséges, vagy egyáltalán nem.

A paraméter és az argumentum kifejezés gyakran felcserélhető. A "paraméter" azonban a metódus-aláírásban szereplő változóra utal. Az "argumentum" a metódus meghívásakor átadott érték.

Paraméterek hozzáadása metódusokhoz

A metódus paraméterei a változókhoz hasonlóan működnek. A paraméter meghatározásakor meg kell adni az adattípust, majd a paraméter nevét. A paraméterek deklarálása a metódus-aláírásban történik, és a paraméterek értékeit a metódushívó adja meg ahelyett, hogy magát a metódust inicializálja. Vegye figyelembe a következő kódot:

	CountTo(5);

	void CountTo(int max) 
	{
		for (int i = 0; i < max; i++)
		{
			Console.Write($"{i}, ");
		}
	}

Ebben a példában a metódus CountTo egy egész szám nevű paramétert maxfogad el. A paraméterre a for metódus ciklusában hivatkozunk. Amikor meghívják a CountTo-t, az egész számot 5 adják meg argumentumként.

Ebben a gyakorlatban megtanulhatja, hogyan hozhat létre és használhat saját metódusparamétereket.

A kódolási környezet előkészítése

Ez a modul gyakorlati tevékenységeket tartalmaz, amelyek végigvezetik a bemutatókód létrehozásának és futtatásának folyamatán. Javasoljuk, hogy fejlesztési környezetként a Visual Studio Code használatával végezze el ezeket a tevékenységeket. Ha a Visual Studio Code-ot használja ezekhez a tevékenységekhez, azzal kényelmesebbé válik a kódírás és -futtatás egy olyan fejlesztői környezetben, amelyet világszerte használnak a szakemberek.

  1. Nyissa meg a Visual Studio Code-ot.

    A Visual Studio Code megnyitásához használhatja a Windows Start menüjét (vagy egy másik operációs rendszer egyenértékű erőforrását).

  2. A Visual Studio Code File menüben válassza a Mappa megnyitása lehetőséget.

  3. A Mappa megnyitása párbeszédpanelen lépjen a Windows Desktop mappába.

    Ha más mappahelyen tartja a kódprojekteket, használhatja inkább ezt a mappahelyet. Ebben a képzésben az a fontos, hogy legyen egy könnyen megtalálható és megjegyezhető hely.

  4. A Mappa megnyitása párbeszédpanelen válassza a Mappa kiválasztása lehetőséget.

    Ha megjelenik egy biztonsági párbeszédpanel, amely megkérdezi, hogy megbízik-e a szerzőkben, válassza az Igen lehetőséget.

  5. A Visual Studio Code Terminál menüjében válassza az Új terminál lehetőséget.

    Figyelje meg, hogy a Terminál panelen egy parancssor megjeleníti az aktuális mappa elérési útját. Például:

    C:\Users\someuser\Desktop>
    

    Megjegyzés:

    Ha nem tesztkörnyezetben vagy üzemeltetett környezetben, hanem saját PC-n dolgozik, és ebben a C#-sorozatban más Microsoft Learn-modulokat is elvégzett, előfordulhat, hogy már létrehozott egy projektmappát a kódmintákhoz. Ha ez a helyzet, átugorhatja a következő lépést, amellyel konzolalkalmazást hozhat létre a TestProject mappában.

  6. A Terminál parancssorában egy új konzolalkalmazás adott mappában való létrehozásához írja be a dotnet új konzol -o ./CsharpProjects/TestProject parancsot , majd nyomja le az Enter billentyűt.

    Ez a .NET CLI-parancs .NET-programsablon használatával hoz létre egy új C#-konzolalkalmazás-projektet a megadott mappahelyen. A parancs létrehozza Önnek a CsharpProjects és a TestProject mappákat, és a .csproj Fájl neveként a TestProjectet használja.

  7. Az EXPLORER panelen bontsa ki a CsharpProjects mappát.

    Ekkor megjelenik a TestProject mappa és két fájl, egy Program.cs nevű C# programfájl és egy TestProject.csproj nevű C# projektfájl.

  8. Az EXPLORER panelen válassza a Program.cs lehetőséget, ha meg szeretné tekinteni a kódfájlt a Szerkesztő panelen.

  9. Törölje a meglévő kódsorokat.

    Ebben a C#-konzolprojektben kódmintákat hozhat létre, építhet és futtathat a modul során.

  10. Zárja be a Terminál panelt.

Metódus létrehozása paraméterekkel

Ebben a feladatban egy metódust fog létrehozni, amely az ütemezett időpontokat egy másik GMT-időzónához igazítja. A metódusnak el kell fogadnia az időpontok listáját, az aktuális időzónát és az új időzónát. Lássunk hozzá!

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

    int[] schedule = {800, 1200, 1600, 2000};
    
  2. Paraméterekkel rendelkező metódus létrehozásához írja be a következő kódot egy új üres sorba:

    void DisplayAdjustedTimes(int[] times, int currentGMT, int newGMT) 
    {
    
    }
    

    Figyelje meg, hogy a paraméterek a változók deklarálásának módjához hasonlóan vannak deklarálva, az adattípus és a változó neve alapján. Bármilyen típusú paramétert használhat, például string, bool, int, tömbök és így tovább! Egy metódus több paramétere mindig vesszővel van elválasztva.

  3. Írja be a következő kódot a DisplayAdjustedTimes metódusba:

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    

    Figyelje meg, hogy nem kell deklarálnia a változókat newGMT , és currentGMT mivel már deklarálva vannak a metódus-aláírásban. A változókat sem inicializálja, mivel a metódus feltételezi, hogy a hívó hozzárendelt értékekkel látja el ezeket az argumentumokat.

    Ebben a lépésben az időkülönbség tárolásához hozza létre int diff , majd ellenőrizze, hogy a megadott GMT-értékek -12 és 12 között vannak-e. A használat Math.Abs egy szám abszolút értékét adja meg, így a GMT-értékek érvénytelenek, ha nagyobbak, mint 12.

  4. Az időeltolódás kiszámításához frissítse a metódust az DisplayAdjustedTimes alábbiak szerint:

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    else if (newGMT <= 0 && currentGMT <= 0 || newGMT >= 0 && currentGMT >= 0) 
    {
        diff = 100 * (Math.Abs(newGMT) - Math.Abs(currentGMT));
    } 
    else 
    {
        diff = 100 * (Math.Abs(newGMT) + Math.Abs(currentGMT));
    }
    

    Ebben a kódban ellenőrzi, hogy fel kell-e vennie vagy kivonnia a GMT időzónák abszolút értékeit az órák különbségének megállapításához. Ha a GMT-értékek ugyanazt a jelet használják (pozitív vagy mindkét negatív), akkor az óra különbsége megegyezik a két szám közötti különbségtel. Ha a GMT-értékek ellentétes előjelekkel rendelkeznek, akkor a különbség megegyezik a két szám összegével. Mivel az órák több százban jelennek meg, az eredményt 100-zal szorozza meg.

  5. Az eredmények megjelenítéséhez írja be a következő kódot a DisplayAdjustedTimes metódus végén:

    for (int i = 0; i < times.Length; i++) 
    {
        int newTime = (times[i] + diff) % 2400;
        Console.WriteLine($"{times[i]} -> {newTime}");
    }
    
  6. A metódus meghívásához írja be a következő kódot a változó deklarációja int[] schedule után:

    DisplayAdjustedTimes(schedule, 6, -6);
    

    Figyelje meg, hogy a változók és a literálok argumentumként is megadhatóak egy metódushoz. Bemeneti paraméterek használatával a metódus nem korlátozódik a globális változók értékeinek használatára.

A munka ellenőrzése

Ebben a feladatban futtatja az alkalmazást az integrált terminálról, és ellenőrzi, hogy a kód megfelelően működik-e. Lássunk hozzá.

  1. Mentse a munkáját a CtrlS + vagy a Visual Studio Code File menüvel.

  2. Szükség esetén nyissa meg a Visual Studio Code integrált terminálpaneljét.

    Az EXPLORER panelen nyissa meg a Terminált a TestProject mappa helyén, kattintson a jobb gombbal a TestProject elemre, majd válassza a Megnyitás az integrált terminálban lehetőséget.

  3. A Terminál parancssorában adja meg a dotnet run parancsot.

  4. Ellenőrizze, hogy a kód a következő kimenetet hozza-e létre:

    800 -> 2000
    1200 -> 0
    1600 -> 400
    2000 -> 800
    

    Ha a kód eltérő eredményeket jelenít meg, a hiba megkereséséhez és a frissítések elvégzéséhez át kell tekintenie a kódot. Futtassa újra a kódot, és ellenőrizze, hogy kijavította-e a problémát. Folytassa a kód frissítését és futtatását, amíg a kód meg nem hozza a várt eredményeket.

Összefoglalás

A paraméterekről eddig az alábbiakat tanulta:

  • Az információk paraméterek formájában továbbíthatók a metódusoknak.
  • A paraméterek deklarálva vannak a metódus-aláírásban.
  • Több paramétert vessző választ el egymástól.
  • A metódusok változó vagy literális argumentumokat fogadnak el.