Exerciții - Utilizarea parametrilor în metode

Finalizat

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.

  1. 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.

  2. În meniul Fișier Visual Studio Code, selectați Deschidere folder.

  3. Î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.

  4. Î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.

  5. Î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.

  6. Î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.

  7. Î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.

  8. În panoul EXPLORER, pentru a vizualiza fișierul de cod în panoul Editor, selectați Program.cs.

  9. Ș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.

  10. Î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!

  1. Introduceți următorul cod în Visual Studio Code Editor:

    int[] schedule = {800, 1200, 1600, 2000};
    
  2. 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ă.

  3. Introduceți următorul cod în DisplayAdjustedTimes metodă:

    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 șinewGMT, deoarece acestea sunt deja declarate currentGMT î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 diff pentru a stoca diferența de timp, apoi verificați dacă valorile GMT furnizate sunt între -12 și 12. Utilizarea Math.Abs vă oferă valoarea absolută a unui număr, deci valorile GMT sunt nevalide dacă sunt mai mari decât 12.

  4. Pentru a calcula diferența de timp, actualizați DisplayAdjustedTimes metoda 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.

  5. 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}");
    }
    
  6. 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.

  1. Salvați lucrul utilizând Ctrl + S sau utilizând meniul Fișier de cod Visual Studio.

  2. 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.

  3. În linia de comandă Terminal, introduceți run dotnet

  4. Verificați dacă codul dvs. generează următoarea ieșire:

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

    Dacă 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.