Sobes.tech
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 — երբ մեթոդը պետք է վերադարձնի մի քանի արժեքներ պարամետրերի միջոցով։