Sobes.tech
Junior — Middle

Koje su razlike između ključnih reči ref i out prilikom prosleđivanja referentnih promenljivih u metodama?

sobes.tech АИ

Одговор од АИ

U C#-u, ključne reči ref i out se koriste za prosleđivanje parametara po referenci, ali imaju važne razlike:

  • ref zahteva da promenljiva bude inicijalizovana pre prosleđivanja u metod. Metod može da čita i menja vrednost.
  • out ne zahteva da promenljiva bude prethodno inicijalizovana, ali metod mora da joj dodeli vrednost pre izlaska.

Primer:

void ExampleRef(ref int x) {
    x += 10; // može da čita i menja
}

void ExampleOut(out int y) {
    y = 42; // obavezno dodeljivanje
}

int a = 5;
ExampleRef(ref a); // a mora biti inicijalizovano

int b; // nije inicijalizovano
ExampleOut(out b); // metod dodeljuje vrednost b

Dakle, ref se koristi kada je potrebno proslediti i izmeniti već postojeću vrednost, a out kada metod treba da vrati više vrednosti putem parametara.