Exerciții - Utilizarea parametrilor în metode
Atunci când creați metode, veți dori adesea să furnizați câteva informații pentru metoda de utilizat. Informațiile consumate de o metodă se numesc parametru. Puteți furniza cât de mulți parametri este necesar pentru a-i îndeplini activitatea sau niciunul.
Termenii "parametru" și "argument" sunt utilizați adesea interschimbabil. Cu toate acestea, "parametru" se referă la variabila din semnătura metodei. Argumentul este valoarea transmisă atunci când este apelată metoda.
Adăugarea parametrilor la metode
Parametrii dintr-o metodă funcționează similar cu variabilele. Un parametru este definit prin specificarea tipului de date urmat de numele parametrului. Parametrii sunt declarați în semnătura metodei, iar valorile pentru parametri sunt furnizate de apelantul metodei în loc să fie inițializați în interiorul metodei propriu-zise. Luați în considerare următorul cod:
CountTo(5);
void CountTo(int max)
{
for (int i = 0; i < max; i++)
{
Console.Write($"{i}, ");
}
}
În acest exemplu, metoda CountTo acceptă un parametru întreg denumit max. Parametrul este menționat în bucla for metodei. Când CountTo este apelat, întregul 5 este furnizat ca argument.
În acest exercițiu, veți afla cum să creați și să utilizați proprii parametri de metodă.
Pregătește-ți mediul de codare
Acest modul include activități practice care vă ghidează în procesul de creare și de rulare a codului demonstrativ. Sunteți încurajat să finalizați aceste activități utilizând Visual Studio Code ca mediu de dezvoltare. Utilizarea Codului Visual Studio pentru aceste activități vă va ajuta să deveniți mai confortabil să scrieți și să rulați cod într-un mediu de dezvoltator utilizat de profesioniști din întreaga lume.
Deschideți Visual Studio Code.
Puteți utiliza meniul Start Windows (sau resursa echivalentă pentru un alt sistem de operare) pentru a deschide Visual Studio Code.
În meniul Fișier Visual Studio Code, selectați Deschidere folder.
În caseta de dialog Deschidere folder, navigați la folderul Desktop Windows.
Dacă aveți o locație de folder diferită în care păstrați proiecte de cod, puteți utiliza acea locație de folder în schimb. Pentru această instruire, lucrul important este să aveți o locație ușor de găsit și de reținut.
În caseta de dialog Deschidere folder, selectați Selectare folder.
Dacă vedeți o casetă de dialog de securitate care vă întreabă dacă aveți încredere în autori, selectați Da.
În meniul Terminal Visual Studio Code, selectați Terminal nou .
Observați că o linie de comandă din panoul Terminal afișează calea folderului pentru folderul curent. De exemplu:
C:\Users\someuser\Desktop>Notă
Dacă lucrați pe propriul PC, nu într-un sandbox sau într-un mediu găzduit și ați finalizat alte module Microsoft Learn din această serie C#, este posibil să fi creat deja un folder de proiect pentru eșantioane de cod. În acest caz, puteți trece peste pasul următor, care este utilizat pentru a crea o aplicație consolă în folderul TestProject.
În linia de comandă Terminal, pentru a crea o aplicație consolă nouă într-un folder specificat, tastați dotnet consolă nouă -o ./CsharpProjects/TestProject , apoi apăsați pe Enter.
Această comandă .NET CLI utilizează un șablon de program .NET pentru a crea un nou proiect de aplicație consolă C# în locația de folder specificată. Comanda creează folderele CsharpProjects și TestProject pentru dvs. și utilizează TestProject ca nume al fișierului
.csproj.În panoul EXPLORER, extindeți folderul CsharpProjects.
Ar trebui să vedeți folderul TestProject și două fișiere, un fișier program C# denumit Program.cs și un fișier proiect C# numit TestProject.csproj.
În panoul EXPLORER, pentru a vizualiza fișierul de cod în panoul Editor, selectați Program.cs.
Ștergeți liniile de cod existente.
Veți utiliza acest proiect de consolă C# pentru a crea, a construi și a rula eșantioane de cod în timpul acestui modul.
Închideți panoul Terminal.
Crearea unei metode cu parametri
În această activitate, veți crea o metodă care ajustează orele programate la un alt fus orar GMT. Metoda ar trebui să accepte o listă de ore, fusul orar curent și noul fus orar. Să începem!
Introduceți următorul cod în Visual Studio Code Editor:
int[] schedule = {800, 1200, 1600, 2000};Pentru a crea o metodă cu parametri, introduceți următorul cod pe o linie nouă necompletată:
void DisplayAdjustedTimes(int[] times, int currentGMT, int newGMT) { }Observați că parametrii sunt declarați similar cu modul în care declarați variabilele, utilizând tipul de date urmat de numele variabilei. Puteți utiliza parametri de orice tip de date, cum
stringar fi ,bool, ,intmatrice și altele! Parametrii multipli dintr-o metodă sunt întotdeauna separați prin virgulă.Introduceți următorul cod în
DisplayAdjustedTimesmetodă:int diff = 0; if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12) { Console.WriteLine("Invalid GMT"); }Observați cum nu trebuie să declarați variabilele și
newGMT, deoarece acestea sunt deja declaratecurrentGMTîn semnătura metodei. De asemenea, nu inițializați variabilele, deoarece metoda presupune că apelantul furnizează acele argumente cu valori atribuite.În acest pas, creați
int diffpentru a stoca diferența de timp, apoi verificați dacă valorile GMT furnizate sunt între -12 și 12. UtilizareaMath.Absvă oferă valoarea absolută a unui număr, deci valorile GMT sunt nevalide dacă sunt mai mari decât 12.Pentru a calcula diferența de timp, actualizați
DisplayAdjustedTimesmetoda după cum urmează: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)); }În acest cod, verificați dacă trebuie să adunați sau să scăsați valorile absolute ale fusurilor orare GMT pentru a obține diferența în ore. Dacă valorile GMT au același semn (pozitiv sau ambele negative), atunci diferența de ore este egală cu diferența dintre cele două numere. Dacă valorile GMT au semne opuse, atunci diferența este egală cu suma celor două numere. Deoarece orele sunt reprezentate în sute, înmulțiți rezultatul cu 100.
Pentru a afișa rezultatele, introduceți următorul cod la sfârșitul metodei
DisplayAdjustedTimes:for (int i = 0; i < times.Length; i++) { int newTime = (times[i] + diff) % 2400; Console.WriteLine($"{times[i]} -> {newTime}"); }Pentru a vă apela metoda, introduceți următorul cod după declarația variabilei
int[] schedule:DisplayAdjustedTimes(schedule, 6, -6);Observați că atât variabilele, cât și literale pot fi furnizate ca argumente pentru o metodă. Prin utilizarea parametrilor de intrare, metoda nu este restricționată la utilizarea valorilor variabilelor globale.
Verificați-vă munca
În această activitate, veți rula aplicația de la Terminalul integrat și veți verifica dacă codul funcționează corect. Să începem.
Salvați lucrul utilizând Ctrl + S sau utilizând meniul Fișier de cod Visual Studio.
Dacă este necesar, deschideți panoul Terminal integrat visual Studio Code.
În panoul EXPLORER, pentru a deschide un Terminal la locația folderului TestProject, faceți clic dreapta pe TestProject, apoi selectați Deschidere în terminal integrat.
În linia de comandă Terminal, introduceți run dotnet
Verificați dacă codul dvs. generează următoarea ieșire:
800 -> 2000 1200 -> 0 1600 -> 400 2000 -> 800Dacă codul afișează rezultate diferite, va trebui să revizuiți codul pentru a găsi eroarea și a face actualizări. Rulați codul din nou pentru a vedea dacă ați remediat problema. Continuați actualizarea și rularea codului până când codul produce rezultatele așteptate.
Recapitula
Iată ce ați învățat despre parametri până acum:
- Informațiile pot fi transmise metodelor sub formă de parametri.
- Parametrii sunt declarați în semnătura metodei.
- Parametrii multipli sunt separați prin virgulă.
- Metodele pot accepta argumente variabile sau literale.