Junior — Middle
Kādi ir atšķirības starp atslēgvārdiem ref un out, nododot atsauces mainīgos metodēs?
sobes.tech AI
Atbilde no AI
C# valodā atslēgvārdi ref un out tiek izmantoti parametru nodošanai pa atsauci, taču tiem ir svarīgas atšķirības:
refprasa, lai mainīgais būtu iepriekš inicializēts pirms nodošanas metodē. Metode var lasīt un mainīt vērtību.outneprasa, lai mainīgais būtu iepriekš inicializēts, bet metode tam pirms izejas jāpiešķir vērtība.
Piemērs:
void ExampleRef(ref int x) {
x += 10; // var lasīt un mainīt
}
void ExampleOut(out int y) {
y = 42; // obligāti jāpiešķir
}
int a = 5;
ExampleRef(ref a); // a jābūt inicializētam
int b; // nav inicializēts
ExampleOut(out b); // metode piešķir vērtību b
Tādējādi, ref tiek izmantots, kad nepieciešams nodot un mainīt jau esošu vērtību, bet out — kad metodei jāatgriež vairākas vērtības caur parametrus.