Junior — Middle
Ինչ տարբերություններ կան ref և out բանալի բառերի միջև՝ երբ փոխանցում եք հղումային փոփոխականներ մեթոդներում։
sobes.tech AI
Պատասխան AI-ից
C# լեզվում, ref և out բանալի բառերը օգտագործվում են պարամետրերը հղումով փոխանցելու համար, բայց ունեն կարևոր տարբերություններ՝
refպահանջում է, որ փոփոխականը նախապես սկսած լինի փոխանցելուց առաջ։ Մեթոդը կարող է կարդալ և փոփոխել արժեքը։outչի պահանջում, որ փոփոխականը նախապես սկսած լինի, բայց մեթոդը պետք է նրան տալ արժեք նախքան դուրս գալը։
Օրինակ՝
void ExampleRef(ref int x) {
x += 10; // կարող է կարդալ և փոփոխել
}
void ExampleOut(out int y) {
y = 42; // պարտադիր նշանակել
}
int a = 5;
ExampleRef(ref a); // a պետք է լինի սկսած
int b; // չի սկսած
ExampleOut(out b); // մեթոդը տալիս է արժեք b-ին
Այսպիսով, ref օգտագործվում է, երբ անհրաժեշտ է փոխանցել և փոփոխել արդեն գոյություն ունեցող արժեքը, իսկ out — երբ մեթոդը պետք է վերադարձնի մի քանի արժեքներ պարամետրերի միջոցով։