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#.

Viz také