Předávání parametrů (Průvodce programováním v C#)
V jazyce C# mohou být argumenty předány parametrům buď hodnotou, nebo odkazem. Předání prostřednictvím odkazu umožňuje členům, metodám, vlastnostem, indexerům, operátorům a konstruktorům funkce změnit hodnotu parametrů a zachovat tuto změnu ve volajícím prostředí. Pokud chcete předat parametr odkazem se záměrem změny hodnoty, použijte klíčové ref slovo , out nebo . Pokud chcete předat odkaz s cílem vyhnout se kopírování, ale ne změnit hodnotu, použijte in modifikátor . Pro zjednodušení se v příkladech v tomto tématu používá ref pouze klíčové slovo . Další informace o rozdílech mezi , a in najdete v tématu v tématu , ref out refa out.
Následující příklad ukazuje rozdíl mezi parametry hodnoty a odkazu.
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;
}
}
Další informace najdete v následujících tématech:
Specifikace jazyka C#
Další informace najdete v tématu Seznamy argumentů ve specifikaci jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.