Sobes.tech
Back to questions
Junior — Middle
71

Чем отличается передача данных в метод по ссылке от передачи по значению?

Companies where asked
Почтатех

Answer from AI

sobes.tech AI

В C# передача данных в метод может происходить двумя основными способами: по значению и по ссылке.

  • Передача по значению (по умолчанию): в метод передается копия значения переменной. Изменения внутри метода не влияют на оригинальную переменную вне метода.

  • Передача по ссылке (с ключевым словом ref или out): в метод передается ссылка на оригинальную переменную. Изменения внутри метода отражаются на исходной переменной.

Пример:

void ChangeValue(int x) {
    x = 10; // изменяется копия
}

void ChangeValueRef(ref int x) {
    x = 10; // изменяется оригинал
}

int a = 5;
ChangeValue(a);
Console.WriteLine(a); // Выведет 5

ChangeValueRef(ref a);
Console.WriteLine(a); // Выведет 10

Таким образом, передача по значению защищает оригинальные данные от изменений внутри метода, а передача по ссылке позволяет методу изменять исходные данные.