Sobes.tech
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:

  • ref necesită ca variabila să fie inițializată înainte de a fi transmisă în metodă. Metoda poate citi și modifica valoarea.
  • out nu 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.