Nivelul 3 — Funcții
Parametrii funcțiilor
Note originale de SunDiaL · Vezi sursa în engleză
Parametri
Parametrii sunt variabile opționale, folosite pentru a transmite date din exterior în interior atunci când apelezi o funcție. Domeniul lor de vizibilitate se află în interiorul funcției. Parametrii pot fi:
Obligatorii
Standard
Cei pe care îi vei folosi cel mai des:
int Add(int x, int y)
{
return x + y;
}
int result = Add(2,3); //5
Parametri de intrare
Marcați prin cuvântul-cheie in, parametrii de intrare sunt doar pentru citire, iar încercarea de a le modifica valoarea din interiorul funcției produce o eroare de compilare.
Un parametru de intrare poate avea o valoare implicită.
void SomeOtherFunction(in int x)
{
x = 5; //will show a compiler error because x cannot be changed
}
SomeOtherFunction(in 5);
Parametri de ieșire
Marcați prin cuvântul-cheie out, parametrii de ieșire trebuie să primească o valoare înainte de ieșirea din funcție. Dacă uiți acest lucru, apare o eroare de compilare.
Doar variabile pot fi transmise parametrilor out.
void SomeOtherFunction(out int y)
{
//will also show a compiler error because y must be given a value
}
int y;
SomeOtherFunction(out y);
Parametri prin referință
Marcați prin cuvântul-cheie ref, acești parametri sunt transmiși prin referință.
Doar variabile pot fi transmise parametrilor ref.
void YetAnotherFunction(ref int x)
{
//do something
}
int x
YetAnotherFunction(ref x);
Opționali
Parametrii opționali primesc o valoare implicită atunci când funcția este definită. Când funcția este apelată, li se poate furniza o valoare, dar dacă nu este furnizată niciuna, se folosește valoarea implicită. Parametrii opționali trebuie declarați după parametrii obligatorii.
int Add(int x, int y = 5)
{
return x + y;
}
Când apelezi această funcție, poți furniza o valoare pentru y sau o poți omite:
Add(2,3);
Add(2); //5 will be used for y
Parametri de tip tablou (params)
Marcat prin cuvântul-cheie params, acest parametru al funcției este declarat ca tablou, dar folosit ca și cum ar fi mai mulți parametri separați.
Parametrii de tip tablou trebuie declarați după parametrii opționali și poți avea unul singur.
int Sum(params int[] numbers)
{
int sum = 0;
foreach(int nr in numbers)
{
sum += nr;
}
return sum;
}
Când apelezi această funcție, poți furniza oricâte valori, ca și cum ar fi parametri separați:
Sum(1,2,3,4,5);