Sobes.tech
Junior — Middle
92

Как используется ключевое слово ref или out в C#, и в чем их отличие?

Компании, где спрашивали
Почтатех

Ответ от нейросети

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 — для передачи значения из метода.