Sobes.tech
Junior — Middle

Qual è la differenza tra il passaggio dei dati in un metodo per riferimento e per valore?

sobes.tech AI

Risposta dell'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

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