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 — эгерде метод көптөгөн маанилерди параметрлер аркылуу кайтаруусу керек болсо.