Junior — Middle
91
Как используется ключевое слово ref или out в C#, и в чем их отличие?
Companies where asked
Почтатех
Answer from AI
sobes.tech AI
В C# ключевые слова ref и out используются для передачи параметров по ссылке, но имеют разные семантики:
-
refтребует, чтобы переменная была инициализирована до передачи в метод. Метод может читать и изменять значение параметра. -
outне требует предварительной инициализации переменной, но метод обязан присвоить ей значение до выхода. Используется для возвращения нескольких значений из метода.
Пример:
void ExampleRef(ref int x) {
x = x + 1; // можно читать и изменять
}
void ExampleOut(out int y) {
y = 10; // обязательно присвоить
}
int a = 5;
ExampleRef(ref a); // a теперь 6
int b;
ExampleOut(out b); // b теперь 10
Основное отличие — ref для уже инициализированных переменных, out — для передачи значения из метода.