Передача параметров (Руководство по программированию в C#)
В C# аргументы могут быть переданы параметрам либо по значению, либо по ссылке. Передача по ссылке позволяет изменять и сохранять измененные значения параметров членов функций, методов, свойств, индексаторов, операторов и конструкторов в вызывающей среде. Для передачи параметра по ссылке используйте ключевое слово ref или out. Для простоты в этом примере используется только ключевое слово ref. Дополнительные сведения об отличиях ключевых слов ref и out см. в разделах ref (Справочник по C#), out (Справочник по C#) и Передача массивов при помощи параметров ref и out (Руководство по программированию на C#).
В следующем примере показано различие между значением и ссылочными параметрами.
class Program
{
static void Main(string[] args)
{
int arg;
// Passing by value.
// The value of arg in Main is not changed.
arg = 4;
squareVal(arg);
Console.WriteLine(arg);
// Output: 4
// Passing by reference.
// The value of arg in Main is changed.
arg = 4;
squareRef(ref arg);
Console.WriteLine(arg);
// Output: 16
}
static void squareVal(int valParameter)
{
valParameter *= valParameter;
}
// Passing by reference
static void squareRef(ref int refParameter)
{
refParameter *= refParameter;
}
}
Дополнительные сведения см. в следующих разделах.
Передача параметров типа значения (Руководство по программированию в C#)
Передача параметров ссылочного типа (Руководство по программированию в C#)
Спецификация языка C#
Дополнительные сведения см. в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
Ссылки
Методы (Руководство по программированию на C#)