Gyakorlat – Paraméterek használata metódusokban
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.
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).
A Visual Studio Code File menüben válassza a Mappa megnyitása lehetőséget.
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.
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.
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.
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
.csprojFájl neveként a TestProjectet használja.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.
Az EXPLORER panelen válassza a Program.cs lehetőséget, ha meg szeretné tekinteni a kódfájlt a Szerkesztő panelen.
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.
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á!
Írja be a következő kódot a Visual Studio Code Editorba:
int[] schedule = {800, 1200, 1600, 2000};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.Írja be a következő kódot a
DisplayAdjustedTimesmetó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, éscurrentGMTmivel 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álatMath.Absegy szám abszolút értékét adja meg, így a GMT-értékek érvénytelenek, ha nagyobbak, mint 12.Az időeltolódás kiszámításához frissítse a metódust az
DisplayAdjustedTimesalá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.
Az eredmények megjelenítéséhez írja be a következő kódot a
DisplayAdjustedTimesmetódus végén:for (int i = 0; i < times.Length; i++) { int newTime = (times[i] + diff) % 2400; Console.WriteLine($"{times[i]} -> {newTime}"); }A metódus meghívásához írja be a következő kódot a változó deklarációja
int[] scheduleutá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á.
Mentse a munkáját a CtrlS + vagy a Visual Studio Code File menüvel.
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.
A Terminál parancssorában adja meg a dotnet run parancsot.
Ellenőrizze, hogy a kód a következő kimenetet hozza-e létre:
800 -> 2000 1200 -> 0 1600 -> 400 2000 -> 800Ha 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.