Junior — Middle
Care sunt diferențele dintre cuvintele cheie ref și out atunci când se transmit variabile de referință în metode?
sobes.tech AI
Răspuns de la AI
În C#, cuvintele cheie ref și out sunt utilizate pentru a transmite parametri prin referință, dar au diferențe importante:
refnecesită ca variabila să fie inițializată înainte de a fi transmisă în metodă. Metoda poate citi și modifica valoarea.outnu necesită ca variabila să fie inițializată anterior, dar metoda trebuie să îi atribuie o valoare înainte de ieșire.
Exemplu:
void ExampleRef(ref int x) {
x += 10; // poate citi și modifica
}
void ExampleOut(out int y) {
y = 42; // trebuie să fie atribuit
}
int a = 5;
ExampleRef(ref a); // a trebuie să fie inițializat
int b; // neinițializat
ExampleOut(out b); // metoda atribuie o valoare lui b
Astfel, ref este folosit când trebuie transmis și modificat o valoare existentă, iar out când metoda trebuie să returneze mai multe valori prin parametri.